[osmosis-dev] 32-bit limit in IdTrackers

Brett Henderson brett at bretth.com
Thu Feb 7 09:43:13 GMT 2013


On 7 February 2013 20:21, Ilya Zverev <zverik at textual.ru> wrote:

> Brett Henderson писал 2013-02-07 13:05:
>
>>
>>  Hi! As some of you have read (http://lists.openstreetmap.**
>>> org/pipermail/dev/2013-**February/026495.html<http://lists.openstreetmap.org/pipermail/dev/2013-February/026495.html>[1]), in three days node ids are expected to surpass
>>> 2147483647 [2], and this method https://github.com/**
>>> openstreetmap/osmosis/blob/**master/core/src/main/java/org/**
>>> openstreetmap/osmosis/core/**util/LongAsInt.java#L30<https://github.com/openstreetmap/osmosis/blob/master/core/src/main/java/org/openstreetmap/osmosis/core/util/LongAsInt.java#L30>[3] will throw an exception "Cannot represent " + value + " as an integer."
>>> It is used in every IdTracker implementation, so id trackers will become
>>> unusable.
>>>
>>>
>>> This will affect tag and area filters. Regional extracts that are made
>>> with osmosis will break. There is a comment at the start of each IdTracker
>>> class: "The current implementation only supports 31 bit numbers, but will
>>> be enhanced if and when required." I guess, now is the time. Can anybody
>>> fix that? There must be a reason why this hasn't done sooner.
>>>
>>
>> Thanks for the heads up.  I could be wrong but I don't think this is an
>> issue.
>>
>> It is used by ListIdTracker and BitSetIdTracker so those
>> implementations will soon fail if you try to use them.  However, the
>> default implementation is now DynamicIdTracker which doesn't suffer
>> from this issue (I hope ;-).
>>
>> The idTrackerType arguments could probably be removed from the
>> --bounding-box and --bounding-polygon tasks now because the default
>> implementation should be better than specifying one in the vast
>> majority of cases.
>>
>
> Thanks for clarification. I've checked and agree with you. But as the
> documentation states, ListIdTracker is still the default options for
> --used-node and --used-way: http://wiki.openstreetmap.org/**
> wiki/Osmosis/Detailed_Usage_0.**41#--used-node_.28--un.29<http://wiki.openstreetmap.org/wiki/Osmosis/Detailed_Usage_0.41#--used-node_.28--un.29>
> Will those break?
>

That has been fixed in Git (ie. after 0.41 was released).  I probably
should release a 0.42 at some point, but haven't had time.  The nightly
builds should be okay.
http://wiki.openstreetmap.org/wiki/Osmosis/Detailed_Usage_0.42#--used-node_.28--un.29


>
> I'd like idTrackerType removed, since after tomorrow using it will
> certainly cause osmosis to fail. I doubt this options was useful, and it
> only puzzled those who were learning osmosis, sometimes being the only
> option besides inPipe and outPipe.
>

I've always avoided removing options unless necessary to avoid breaking
existing scripts, but in this case I agree that it would be better
removed.  It might be nice if Osmosis had a way of deprecating options so
that warnings would be displayed if they were used.  I'm a bit time
constrained at the moment but happy to accept patches/pull requests ;-)

Brett
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/osmosis-dev/attachments/20130207/fbacd0b5/attachment-0001.html>


More information about the osmosis-dev mailing list