SlideRuleEarth / sliderule

Server and client framework for on-demand science data processing in the cloud
https://slideruleearth.io
Other
27 stars 12 forks source link

Implemented default parms for luaobject, added python and lua tests #397

Closed elidwa closed 4 months ago

jpswinski commented 4 months ago

I get an address sanitizer error when I run the self test:

############################################
Running Test Script: parms_tojson.lua
############################################

--------------------------------
Default arrow.parms.tojson
--------------------------------
{"path":null,"format":"UNSUPPORTED","open_on_complete":false,"as_geo":true,"asset_name":null,"region":null,"ancillary_fields":[],"credentials":"not provided"}

--------------------------------
UserSet arrow.parms.tojson
--------------------------------
{"path":"/tmp/samples.geoparquet","format":"PARQUET","open_on_complete":false,"as_geo":true,"asset_name":null,"region":null,"ancillary_fields":[],"credentials":"not provided"}

--------------------------------
Default cre.parms.tojson
--------------------------------
{"image":null,"command":null,"timeout":600}

--------------------------------
UserSet cre.parms.tojson
--------------------------------
{"image":"/tmp/fakeimage.jpg","command":"fakecommand","timeout":600}

--------------------------------
Default geo.parms.tojson
--------------------------------
{"sampling_algo":"NearestNeighbour","sampling_radius":0,"zonal_stats":false,"flags_file":false,"filter_time":false,"url_substring":null,"filter_closest_time":false,"use_poi_time":false,"filter_doy_range":false,"doy_keep_inrange":true,"doy_start":0,"doy_end":0,"proj_pipeline":null,"aoi_bbox":[0.0,0.0,0.0,0.0],"catalog":null,"bands_list":"[]","asset_name":null,"asset":null,"key_space":0}

--------------------------------
UserSet geo.parms.tojson
--------------------------------
=================================================================
==1348959==ERROR: AddressSanitizer: heap-use-after-free on address 0xfffec118c886 at pc 0x00000065c408 bp 0xfffeff190550 sp 0xfffeff190548
READ of size 2 at 0xfffec118c886 thread T132
    #0 0x65c404 in rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>>::IsString() const /usr/local/include/rapidjson/document.h:1124:45
    #1 0x650814 in bool rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>>::Accept<rapidjson::Writer<rapidjson::GenericStringBuffer<rapidjson::UTF8<char>, rapidjson::CrtAllocator>, rapidjson::UTF8<char>, rapidjson::UTF8<char>, rapidjson::CrtAllocator, 0u>>(rapidjson::Writer<rapidjson::GenericStringBuffer<rapidjson::UTF8<char>, rapidjson::CrtAllocator>, rapidjson::UTF8<char>, rapidjson::UTF8<char>, rapidjson::CrtAllocator, 0u>&) const /usr/local/include/rapidjson/document.h:1958:17
    #2 0x650930 in bool rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>>::Accept<rapidjson::Writer<rapidjson::GenericStringBuffer<rapidjson::UTF8<char>, rapidjson::CrtAllocator>, rapidjson::UTF8<char>, rapidjson::UTF8<char>, rapidjson::CrtAllocator, 0u>>(rapidjson::Writer<rapidjson::GenericStringBuffer<rapidjson::UTF8<char>, rapidjson::CrtAllocator>, rapidjson::UTF8<char>, rapidjson::UTF8<char>, rapidjson::CrtAllocator, 0u>&) const /usr/local/include/rapidjson/document.h:1961:21
    #3 0x848148 in GeoParms::tojson() const /home/jswinski/meta/sliderule/packages/geo/GeoParms.cpp:393:9
    #4 0x6e9b5c in LuaObject::lua2json(lua_State*) /home/jswinski/meta/sliderule/packages/core/LuaObject.cpp:602:29
    #5 0xffffbb8ccfac  (/lib64/liblua-5.4.so+0x24fac) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #6 0xffffbb8de1fc  (/lib64/liblua-5.4.so+0x361fc) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #7 0xffffbb8c2078 in lua_callk (/lib64/liblua-5.4.so+0x1a078) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #8 0xffffbb8c3720  (/lib64/liblua-5.4.so+0x1b720) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #9 0xffffbb8ccfac  (/lib64/liblua-5.4.so+0x24fac) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #10 0xffffbb8de1fc  (/lib64/liblua-5.4.so+0x361fc) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #11 0xffffbb8c28b8  (/lib64/liblua-5.4.so+0x1a8b8) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #12 0xffffbb8c7704  (/lib64/liblua-5.4.so+0x1f704) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #13 0xffffbb8c95e8  (/lib64/liblua-5.4.so+0x215e8) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #14 0xffffbb8c2998 in lua_pcallk (/lib64/liblua-5.4.so+0x1a998) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #15 0x6cdde8 in LuaEngine::docall(int, int) /home/jswinski/meta/sliderule/packages/core/LuaEngine.cpp:824:14
    #16 0x6cf5a4 in LuaEngine::handlescript(char const*) /home/jswinski/meta/sliderule/packages/core/LuaEngine.cpp:1021:18
    #17 0x6cd660 in LuaEngine::pmain(lua_State*) /home/jswinski/meta/sliderule/packages/core/LuaEngine.cpp:1137:33
    #18 0xffffbb8ccfac  (/lib64/liblua-5.4.so+0x24fac) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #19 0xffffbb8c28a0  (/lib64/liblua-5.4.so+0x1a8a0) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #20 0xffffbb8c7704  (/lib64/liblua-5.4.so+0x1f704) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #21 0xffffbb8c95e8  (/lib64/liblua-5.4.so+0x215e8) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #22 0xffffbb8c2998 in lua_pcallk (/lib64/liblua-5.4.so+0x1a998) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #23 0x6c9a78 in LuaEngine::protectedThread(void*) /home/jswinski/meta/sliderule/packages/core/LuaEngine.cpp:562:22
    #24 0xffffb7ec2830 in start_thread (/lib64/libc.so.6+0x90830) (BuildId: f62e89dfc0895638abb4fdaf98b2630da7220235)
    #25 0xffffb7e66e58 in thread_start (/lib64/libc.so.6+0x34e58) (BuildId: f62e89dfc0895638abb4fdaf98b2630da7220235)

0xfffec118c886 is located 134 bytes inside of 65560-byte region [0xfffec118c800,0xfffec119c818)
freed by thread T132 here:
    #0 0x602bc4 in __interceptor_free (/home/jswinski/meta/sliderule/stage/sliderule/bin/sliderule-v4.4.0+0x602bc4) (BuildId: c18cf44c7d0c2407dc3387b40758546d378d8121)
    #1 0x651d64 in rapidjson::CrtAllocator::Free(void*) /usr/local/include/rapidjson/internal/../allocators.h:100:54
    #2 0x65a7b0 in rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>::Clear() /usr/local/include/rapidjson/internal/../allocators.h:285:13
    #3 0x65a360 in rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>::~MemoryPoolAllocator() /usr/local/include/rapidjson/internal/../allocators.h:268:9
    #4 0x65a0fc in rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, rapidjson::CrtAllocator>::Destroy() /usr/local/include/rapidjson/document.h:2878:9
    #5 0x651104 in rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, rapidjson::CrtAllocator>::~GenericDocument() /usr/local/include/rapidjson/document.h:2556:9
    #6 0x847fd0 in GeoParms::tojson() const /home/jswinski/meta/sliderule/packages/geo/GeoParms.cpp:386:5
    #7 0x6e9b5c in LuaObject::lua2json(lua_State*) /home/jswinski/meta/sliderule/packages/core/LuaObject.cpp:602:29
    #8 0xffffbb8ccfac  (/lib64/liblua-5.4.so+0x24fac) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #9 0xffffbb8de1fc  (/lib64/liblua-5.4.so+0x361fc) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #10 0xffffbb8c2078 in lua_callk (/lib64/liblua-5.4.so+0x1a078) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #11 0xffffbb8c3720  (/lib64/liblua-5.4.so+0x1b720) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #12 0xffffbb8ccfac  (/lib64/liblua-5.4.so+0x24fac) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #13 0xffffbb8de1fc  (/lib64/liblua-5.4.so+0x361fc) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #14 0xffffbb8c28b8  (/lib64/liblua-5.4.so+0x1a8b8) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #15 0xffffbb8c7704  (/lib64/liblua-5.4.so+0x1f704) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #16 0xffffbb8c95e8  (/lib64/liblua-5.4.so+0x215e8) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #17 0xffffbb8c2998 in lua_pcallk (/lib64/liblua-5.4.so+0x1a998) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #18 0x6cdde8 in LuaEngine::docall(int, int) /home/jswinski/meta/sliderule/packages/core/LuaEngine.cpp:824:14
    #19 0x6cf5a4 in LuaEngine::handlescript(char const*) /home/jswinski/meta/sliderule/packages/core/LuaEngine.cpp:1021:18
    #20 0x6cd660 in LuaEngine::pmain(lua_State*) /home/jswinski/meta/sliderule/packages/core/LuaEngine.cpp:1137:33
    #21 0xffffbb8ccfac  (/lib64/liblua-5.4.so+0x24fac) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #22 0xffffbb8c28a0  (/lib64/liblua-5.4.so+0x1a8a0) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #23 0xffffbb8c7704  (/lib64/liblua-5.4.so+0x1f704) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #24 0xffffbb8c95e8  (/lib64/liblua-5.4.so+0x215e8) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #25 0xffffbb8c2998 in lua_pcallk (/lib64/liblua-5.4.so+0x1a998) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #26 0x6c9a78 in LuaEngine::protectedThread(void*) /home/jswinski/meta/sliderule/packages/core/LuaEngine.cpp:562:22
    #27 0xffffb7ec2830 in start_thread (/lib64/libc.so.6+0x90830) (BuildId: f62e89dfc0895638abb4fdaf98b2630da7220235)
    #28 0xffffb7e66e58 in thread_start (/lib64/libc.so.6+0x34e58) (BuildId: f62e89dfc0895638abb4fdaf98b2630da7220235)

previously allocated by thread T132 here:
    #0 0x602e80 in malloc (/home/jswinski/meta/sliderule/stage/sliderule/bin/sliderule-v4.4.0+0x602e80) (BuildId: c18cf44c7d0c2407dc3387b40758546d378d8121)
    #1 0x659f88 in rapidjson::CrtAllocator::Malloc(unsigned long) /usr/local/include/rapidjson/internal/../allocators.h:88:20
    #2 0x65b834 in rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>::AddChunk(unsigned long) /usr/local/include/rapidjson/internal/../allocators.h:393:76
    #3 0x65b3a4 in rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>::Malloc(unsigned long) /usr/local/include/rapidjson/internal/../allocators.h:328:18
    #4 0x65ae4c in rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>>::SetStringRaw(rapidjson::GenericStringRef<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>&) /usr/local/include/rapidjson/document.h:2451:47
    #5 0x80dfdc in rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>>::GenericValue(char const*, unsigned int, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>&) /usr/local/include/rapidjson/document.h:843:82
    #6 0x80d7fc in rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, rapidjson::CrtAllocator>::String(char const*, unsigned int, bool) /usr/local/include/rapidjson/document.h:2838:53
    #7 0x809efc in void rapidjson::GenericReader<rapidjson::UTF8<char>, rapidjson::UTF8<char>, rapidjson::CrtAllocator>::ParseString<0u, rapidjson::GenericStringStream<rapidjson::UTF8<char>>, rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, rapidjson::CrtAllocator>>(rapidjson::GenericStringStream<rapidjson::UTF8<char>>&, rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, rapidjson::CrtAllocator>&, bool) /usr/local/include/rapidjson/reader.h:982:73
    #8 0x808eb8 in void rapidjson::GenericReader<rapidjson::UTF8<char>, rapidjson::UTF8<char>, rapidjson::CrtAllocator>::ParseValue<0u, rapidjson::GenericStringStream<rapidjson::UTF8<char>>, rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, rapidjson::CrtAllocator>>(rapidjson::GenericStringStream<rapidjson::UTF8<char>>&, rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, rapidjson::CrtAllocator>&) /usr/local/include/rapidjson/reader.h:1757:23
    #9 0x80a5b8 in void rapidjson::GenericReader<rapidjson::UTF8<char>, rapidjson::UTF8<char>, rapidjson::CrtAllocator>::ParseObject<0u, rapidjson::GenericStringStream<rapidjson::UTF8<char>>, rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, rapidjson::CrtAllocator>>(rapidjson::GenericStringStream<rapidjson::UTF8<char>>&, rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, rapidjson::CrtAllocator>&) /usr/local/include/rapidjson/reader.h:772:13
    #10 0x808ecc in void rapidjson::GenericReader<rapidjson::UTF8<char>, rapidjson::UTF8<char>, rapidjson::CrtAllocator>::ParseValue<0u, rapidjson::GenericStringStream<rapidjson::UTF8<char>>, rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, rapidjson::CrtAllocator>>(rapidjson::GenericStringStream<rapidjson::UTF8<char>>&, rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, rapidjson::CrtAllocator>&) /usr/local/include/rapidjson/reader.h:1758:23
    #11 0x8081f4 in rapidjson::ParseResult rapidjson::GenericReader<rapidjson::UTF8<char>, rapidjson::UTF8<char>, rapidjson::CrtAllocator>::Parse<0u, rapidjson::GenericStringStream<rapidjson::UTF8<char>>, rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, rapidjson::CrtAllocator>>(rapidjson::GenericStringStream<rapidjson::UTF8<char>>&, rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, rapidjson::CrtAllocator>&) /usr/local/include/rapidjson/reader.h:575:13
    #12 0x807888 in rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, rapidjson::CrtAllocator>& rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, rapidjson::CrtAllocator>::ParseStream<0u, rapidjson::UTF8<char>, rapidjson::GenericStringStream<rapidjson::UTF8<char>>>(rapidjson::GenericStringStream<rapidjson::UTF8<char>>&) /usr/local/include/rapidjson/document.h:2646:40
    #13 0x8075e8 in rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, rapidjson::CrtAllocator>& rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, rapidjson::CrtAllocator>::Parse<0u, rapidjson::UTF8<char>>(rapidjson::UTF8<char>::Ch const*) /usr/local/include/rapidjson/document.h:2711:16
    #14 0x807488 in rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, rapidjson::CrtAllocator>& rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, rapidjson::CrtAllocator>::Parse<0u>(char const*) /usr/local/include/rapidjson/document.h:2720:16
    #15 0x80713c in rapidjson::GenericDocument<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, rapidjson::CrtAllocator>::Parse(char const*) /usr/local/include/rapidjson/document.h:2727:16
    #16 0x847f9c in GeoParms::tojson() const /home/jswinski/meta/sliderule/packages/geo/GeoParms.cpp:384:19
    #17 0x6e9b5c in LuaObject::lua2json(lua_State*) /home/jswinski/meta/sliderule/packages/core/LuaObject.cpp:602:29
    #18 0xffffbb8ccfac  (/lib64/liblua-5.4.so+0x24fac) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #19 0xffffbb8de1fc  (/lib64/liblua-5.4.so+0x361fc) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #20 0xffffbb8c2078 in lua_callk (/lib64/liblua-5.4.so+0x1a078) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #21 0xffffbb8c3720  (/lib64/liblua-5.4.so+0x1b720) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #22 0xffffbb8ccfac  (/lib64/liblua-5.4.so+0x24fac) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #23 0xffffbb8de1fc  (/lib64/liblua-5.4.so+0x361fc) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #24 0xffffbb8c28b8  (/lib64/liblua-5.4.so+0x1a8b8) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #25 0xffffbb8c7704  (/lib64/liblua-5.4.so+0x1f704) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #26 0xffffbb8c95e8  (/lib64/liblua-5.4.so+0x215e8) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #27 0xffffbb8c2998 in lua_pcallk (/lib64/liblua-5.4.so+0x1a998) (BuildId: e5fbbb1096fddebf4d4ac4d8855087e41806bc95)
    #28 0x6cdde8 in LuaEngine::docall(int, int) /home/jswinski/meta/sliderule/packages/core/LuaEngine.cpp:824:14
    #29 0x6cf5a4 in LuaEngine::handlescript(char const*) /home/jswinski/meta/sliderule/packages/core/LuaEngine.cpp:1021:18

Thread T132 created by T0 here:
    #0 0x5ebd84 in pthread_create (/home/jswinski/meta/sliderule/stage/sliderule/bin/sliderule-v4.4.0+0x5ebd84) (BuildId: c18cf44c7d0c2407dc3387b40758546d378d8121)
    #1 0x98dfb0 in Thread::Thread(void* (*)(void*), void*, bool) /home/jswinski/meta/sliderule/platforms/linux/Thread.cpp:69:15
    #2 0x6c8ff0 in LuaEngine::LuaEngine(char const*, int, char (*) [1024], unsigned int, void (*)(lua_State*, lua_Debug*), bool) /home/jswinski/meta/sliderule/packages/core/LuaEngine.cpp:94:28
    #3 0x6416d8 in main /home/jswinski/meta/sliderule/targets/server-linux/SlideRule.cpp:345:34
    #4 0xffffb7e67a74 in __libc_start_call_main (/lib64/libc.so.6+0x35a74) (BuildId: f62e89dfc0895638abb4fdaf98b2630da7220235)
    #5 0xffffb7e67b58 in __libc_start_main@GLIBC_2.17 (/lib64/libc.so.6+0x35b58) (BuildId: f62e89dfc0895638abb4fdaf98b2630da7220235)
    #6 0x58582c in _start (/home/jswinski/meta/sliderule/stage/sliderule/bin/sliderule-v4.4.0+0x58582c) (BuildId: c18cf44c7d0c2407dc3387b40758546d378d8121)

SUMMARY: AddressSanitizer: heap-use-after-free /usr/local/include/rapidjson/document.h:1124:45 in rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>>::IsString() const
Shadow bytes around the buggy address:
  0x200fd82318c0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x200fd82318d0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x200fd82318e0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x200fd82318f0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x200fd8231900: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
=>0x200fd8231910:[fd]fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x200fd8231920: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x200fd8231930: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x200fd8231940: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x200fd8231950: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x200fd8231960: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07 
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
==1348959==ABORTING
make: *** [Makefile:417: selftest] Error 1