[OSM-dev] Binary Format, Performance, pbf2osm

Scott Crosby scrosby at cs.rice.edu
Sun Oct 17 21:13:27 BST 2010


On Sun, Oct 17, 2010 at 6:34 AM, Stefan de Konink <stefan at konink.de> wrote:

> On Sun, 17 Oct 2010, Stefan de Konink wrote:
>
>  message 'PrimitiveBlock': missing required field 'stringtable'
>> Error unpacking PrimitiveBlock message
>>
>> (gdb) print *hmsg
>> $3 = {base = {descriptor = 0x406740, n_unknown_fields = 0,
>>    unknown_fields = 0x0}, bbox = 0x0, n_required_features = 0,
>>  required_features = 0x0, n_optional_features = 0, optional_features =
>> 0x0,
>>  writingprogram = 0x0, source = 0x0}
>>
>> But lets look what is in the raw message:
>>
>> (gdb) print bmsg.raw
>> $2 = {len = 56,
>>  data = 0x60b550
>> "\n\032\b\276\210\360\350B\020\340\220\361\227g\030\236\226\305\344\370\002
>> \340\347\351\223\340\002\"\016OsmSchema-V0.6\"\nDenseNodes\201\n\002"}
>>
>> Could it be an empty block?
>>
>
> (It missed a required feature)
>
> If we look at one block after it, which the error actually has:
>
> (gdb) print *bmsg
> $1 = {base = {descriptor = 0x4057e0, n_unknown_fields = 0,
>    unknown_fields = 0x0}, has_raw = 1, raw = {len = 141264,
>    data = 0x7ffff7eaf010 "\n\261D\n"}, has_raw_size = 0, raw_size = 0,
>  has_zlib_data = 0, zlib_data = {len = 0, data = 0x0}, has_lzma_data = 0,
>  lzma_data = {len = 0, data = 0x0}, has_bzip2_data = 0, bzip2_data = {
>    len = 0, data = 0x0}}
>
> The block has raw_size = 0 (that will result in badness!)
>
> Now the question is? I'm trusting raw_size (because it is equal for
> uncompress and compressed data) and it means the output size. I see that you
> have only set 'len' of the raw message. While it is set in the compressed
> case. Why is it 0?
>
>
I left the raw_size unset, and you're getting the default value of 0.

Scott
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/dev/attachments/20101017/2c281fda/attachment.html>


More information about the dev mailing list