The bug allows a newly-created element to refer to a deleted one
if the transactions for both overlap. Precisely, the issue is that
the check that an element exists does not prevent a concurrent
transaction from altering that row.
Because "deleting" an element in the OSM database does not remove
the row, we cannot rely on FK constraints to ensure the correct
behaviour. Instead, this fix relies on manually locking referenced
elements.
Note that this "fix" is suboptimal, as it does not allow any
updates to the referenced elements. Updates which do not delete
the row could safely be done, but will be prevented.
Also, it's not clear what the negative performance impact of this
change will be.
This uses the sputnik13/trusty64 image rather then the official
ubuntu/trusty64 image in order to get libvirt provider support as
wall as virtualbox provider support.
It turns out that the PHP urlencode encodes more characters than
the ruby URI.encode does by default, so specify our own characters
to encode based on http://php.net/manual/en/function.urlencode.php
with the extra exclusion of colon, which the mediawiki code reverses
after the encoding is done.
Fixes#967
From a pure design and content view (where the content is factual) a link
to learnosm.org would really be better. Potentially learnosm could be forked
and a version hosted on OSMF infrastructure with the marketing verbiage
for HOTs view of the world removed.
This replaces OpenID authentication, which is going away soon, but
provides an upgrade path where we can migrate users that already have
a Google OpenID setup to the new system transparently.
The soft limit won't work with passenger 5 and causes spurious
errors to be reported back to browsers, and in any case it doesn't
actually seem to be necessary anymore.