[libvirt] [PATCHv3 00/13] Switch from yajl to Jansson

Ján Tomko jtomko at redhat.com
Wed May 16 08:53:22 UTC 2018


On Tue, May 15, 2018 at 05:24:40PM +0100, Daniel P. Berrangé wrote:
>On Tue, May 15, 2018 at 06:12:05PM +0200, Andrea Bolognani wrote:
>> On Fri, 2018-05-11 at 14:59 +0200, Ján Tomko wrote:
>> > Per the discussion here:
>> > https://www.redhat.com/archives/libvir-list/2017-November/msg00225.html
>> > Switch from using yajl to Jansson.
>>
>> I tried building
>>
>>   https://repo.or.cz/libvirt/jtomko.git/ jansson
>>
>> on all platform libvirt supports.
>>
>> Debian 8, Ubuntu 14.04 and Ubuntu 16.04 all linked successfully
>> against Jansson, but when running the test suite I got
>>
>>   FAIL: virnetdaemontest
>>   FAIL: qemumonitorjsontest
>>   FAIL: qemucapabilitiestest
>>   FAIL: qemuhotplugtest
>>   FAIL: qemucommandutiltest
>>   FAIL: qemublocktest
>>   FAIL: qemumigparamstest
>>   FAIL: virjsontest
>>
>> >From a quick look, it seems like at least some of the failures
>> are caused by dictionaries and arrays having their members
>> shuffled around.
>
>When using YAJL, object properties are stored in arrays, so order is
>stable when printing.
>
>With Jansson, object properties appear to be stored in hash tables,
>so order is potentially unstable when printing.
>
>I'm a little surprised it doesn't fail on all platforms - makes me
>wonder how good the hash function is.
>
>Looks like we would need JSON_SORT_KEYS to json_dumps(), but that
>may well require all test data to be recreated :-(
>

There is a JSON_PRESERVE_ORDER flag since v1.3 that formats the keys
in the same order they were added and it's the default since 2.8.

I have pushed a patch that uses it on my repo:
https://repo.or.cz/libvirt/jtomko.git/ jansson_preserve

Jano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20180516/0a984649/attachment-0001.sig>


More information about the libvir-list mailing list