Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Concurrently reading from COGs through vsicurl fails with a segfault in 1.1.3 #1876

Closed
mihi314 opened this issue Feb 26, 2020 · 12 comments
Closed
Labels

Comments

@mihi314
Copy link

mihi314 commented Feb 26, 2020

Expected behavior and actual behavior.

Concurrently reading from COGs through vsicurl fails with a segfault or other error:
*** Error in `python3': double free or corruption (!prev): 0x00007fddb4088da0 ***

The accompanying backtrace:

Click to expand
*** Error in `python3': double free or corruption (!prev): 0x00007f9744088da0 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7f97668377e5]
/lib/x86_64-linux-gnu/libc.so.6(+0x8037a)[0x7f976684037a]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7f976684453c]
/usr/local/lib/python3.5/dist-packages/fiona/.libs/libgdal-0f908958.so.20.5.4(CRYPTO_free+0x1d)[0x7f9764907ced]
/usr/local/lib/python3.5/dist-packages/fiona/.libs/libgdal-0f908958.so.20.5.4(engine_pkey_meths_free+0x6d)[0x7f976494156d]
/usr/local/lib/python3.5/dist-packages/fiona/.libs/libgdal-0f908958.so.20.5.4(engine_free_util+0x66)[0x7f97649407c6]
/usr/local/lib/python3.5/dist-packages/fiona/.libs/libgdal-0f908958.so.20.5.4(engine_unlocked_finish+0x3c)[0x7f9764940b9c]
/usr/local/lib/python3.5/dist-packages/fiona/.libs/libgdal-0f908958.so.20.5.4(ENGINE_finish+0x39)[0x7f9764940cf9]
/usr/local/lib/python3.5/dist-packages/fiona/.libs/./libcurl-ea538880.so.4.4.0(ssl_create_cipher_list+0x1bc)[0x7f97623d4b6c]
/usr/local/lib/python3.5/dist-packages/fiona/.libs/./libcurl-ea538880.so.4.4.0(SSL_CTX_new+0x25b)[0x7f97623cc71b]
/usr/local/lib/python3.5/dist-packages/fiona/.libs/./libcurl-ea538880.so.4.4.0(+0xd6386)[0x7f97623a3386]
/usr/local/lib/python3.5/dist-packages/fiona/.libs/./libcurl-ea538880.so.4.4.0(+0xd783a)[0x7f97623a483a]
/usr/local/lib/python3.5/dist-packages/fiona/.libs/./libcurl-ea538880.so.4.4.0(+0xda28b)[0x7f97623a728b]
/usr/local/lib/python3.5/dist-packages/fiona/.libs/./libcurl-ea538880.so.4.4.0(+0x999d2)[0x7f97623669d2]
/usr/local/lib/python3.5/dist-packages/fiona/.libs/./libcurl-ea538880.so.4.4.0(+0xaae21)[0x7f9762377e21]
/usr/local/lib/python3.5/dist-packages/fiona/.libs/./libcurl-ea538880.so.4.4.0(+0xbd32e)[0x7f976238a32e]
/usr/local/lib/python3.5/dist-packages/fiona/.libs/./libcurl-ea538880.so.4.4.0(curl_multi_perform+0x81)[0x7f976238b0b1]
/usr/local/lib/python3.5/dist-packages/rasterio/.libs/libgdal-63d0ced7.so.20.5.4(+0xbb960b)[0x7f975e4ae60b]
/usr/local/lib/python3.5/dist-packages/rasterio/.libs/libgdal-63d0ced7.so.20.5.4(+0xbc33da)[0x7f975e4b83da]
/usr/local/lib/python3.5/dist-packages/rasterio/.libs/libgdal-63d0ced7.so.20.5.4(+0xbbbf30)[0x7f975e4b0f30]
/usr/local/lib/python3.5/dist-packages/rasterio/.libs/libgdal-63d0ced7.so.20.5.4(_ZN12GDALOpenInfoC1EPKciPKS1_+0x521)[0x7f975e0d4541]
/usr/local/lib/python3.5/dist-packages/rasterio/.libs/libgdal-63d0ced7.so.20.5.4(GDALOpenEx+0x87)[0x7f975e0af677]
/usr/local/lib/python3.5/dist-packages/rasterio/_shim.cpython-35m-x86_64-linux-gnu.so(+0x22ab1)[0x7f97589ddab1]
/usr/local/lib/python3.5/dist-packages/rasterio/_base.cpython-35m-x86_64-linux-gnu.so(+0x42c36)[0x7f975f1ebc36]
python3[0x579f4c]
python3(PyObject_Call+0x47)[0x5c3bd7]
python3(PyEval_EvalFrameEx+0x24a2)[0x532a22]
python3(PyEval_EvalCodeEx+0x88a)[0x53af6a]
python3[0x4e3537]
python3(PyObject_Call+0x47)[0x5c3bd7]
python3(PyEval_EvalFrameEx+0x24a2)[0x532a22]
python3[0x539f5f]
python3(PyEval_EvalFrameEx+0x5572)[0x535af2]
python3(PyEval_EvalCodeEx+0x13b)[0x53a81b]
python3[0x4e3423]
python3(PyObject_Call+0x47)[0x5c3bd7]
python3[0x53035e]
python3[0x5b13b4]
python3[0x579f4c]
python3(PyObject_Call+0x47)[0x5c3bd7]
python3(PyEval_EvalFrameEx+0x4f2f)[0x5354af]
python3(PyEval_EvalCodeEx+0x13b)[0x53a81b]
python3[0x4e3537]
python3(PyObject_Call+0x47)[0x5c3bd7]
python3(PyEval_EvalFrameEx+0x24a2)[0x532a22]
python3(PyEval_EvalCodeEx+0x13b)[0x53a81b]
python3[0x4e3537]
python3(PyObject_Call+0x47)[0x5c3bd7]
python3(PyEval_EvalFrameEx+0x24a2)[0x532a22]
python3(PyEval_EvalFrameEx+0x4b64)[0x5350e4]
python3(PyEval_EvalFrameEx+0x4b64)[0x5350e4]
python3(PyEval_EvalCodeEx+0x13b)[0x53a81b]
python3[0x4e3423]
python3(PyObject_Call+0x47)[0x5c3bd7]
python3[0x4f08be]
python3(PyObject_Call+0x47)[0x5c3bd7]
python3(PyEval_CallObjectWithKeywords+0x30)[0x525d00]
python3[0x626bb2]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7f9766b916ba]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x7f97668c741d]
======= Memory map: ========
00400000-007a7000 r-xp 00000000 08:11 336249                             /usr/bin/python3.5
009a6000-009a8000 r--p 003a6000 08:11 336249                             /usr/bin/python3.5
009a8000-00a3f000 rw-p 003a8000 08:11 336249                             /usr/bin/python3.5
00a3f000-00a70000 rw-p 00000000 00:00 0 
01724000-01f09000 rw-p 00000000 00:00 0                                  [heap]
7f9720000000-7f9720027000 rw-p 00000000 00:00 0 
7f9720027000-7f9724000000 ---p 00000000 00:00 0 
7f9728000000-7f9728021000 rw-p 00000000 00:00 0 
7f9728021000-7f972c000000 ---p 00000000 00:00 0 
7f972c000000-7f972c021000 rw-p 00000000 00:00 0 
7f972c021000-7f9730000000 ---p 00000000 00:00 0 
7f97335e4000-7f97335fb000 r-xp 00000000 08:11 918711                     /lib/x86_64-linux-gnu/libresolv-2.23.so
7f97335fb000-7f97337fb000 ---p 00017000 08:11 918711                     /lib/x86_64-linux-gnu/libresolv-2.23.so
7f97337fb000-7f97337fc000 r--p 00017000 08:11 918711                     /lib/x86_64-linux-gnu/libresolv-2.23.so
7f97337fc000-7f97337fd000 rw-p 00018000 08:11 918711                     /lib/x86_64-linux-gnu/libresolv-2.23.so
7f97337fd000-7f97337ff000 rw-p 00000000 00:00 0 
7f97337ff000-7f9733800000 ---p 00000000 00:00 0 
7f9733800000-7f9734000000 rw-p 00000000 00:00 0 
7f9734000000-7f973406d000 rw-p 00000000 00:00 0 
7f973406d000-7f9738000000 ---p 00000000 00:00 0 
7f9738000000-7f9738021000 rw-p 00000000 00:00 0 
7f9738021000-7f973c000000 ---p 00000000 00:00 0 
7f973c000000-7f973c05f000 rw-p 00000000 00:00 0 
7f973c05f000-7f9740000000 ---p 00000000 00:00 0 
7f9740000000-7f9740092000 rw-p 00000000 00:00 0 
7f9740092000-7f9744000000 ---p 00000000 00:00 0 
7f9744000000-7f97440cb000 rw-p 00000000 00:00 0 
7f97440cb000-7f9748000000 ---p 00000000 00:00 0 
7f97481f3000-7f97481f8000 r-xp 00000000 08:11 918686                     /lib/x86_64-linux-gnu/libnss_dns-2.23.so
7f97481f8000-7f97483f8000 ---p 00005000 08:11 918686                     /lib/x86_64-linux-gnu/libnss_dns-2.23.so
7f97483f8000-7f97483f9000 r--p 00005000 08:11 918686                     /lib/x86_64-linux-gnu/libnss_dns-2.23.so
7f97483f9000-7f97483fa000 rw-p 00006000 08:11 918686                     /lib/x86_64-linux-gnu/libnss_dns-2.23.so
7f97483fa000-7f9748405000 r-xp 00000000 08:11 918688                     /lib/x86_64-linux-gnu/libnss_files-2.23.so
7f9748405000-7f9748604000 ---p 0000b000 08:11 918688                     /lib/x86_64-linux-gnu/libnss_files-2.23.so
7f9748604000-7f9748605000 r--p 0000a000 08:11 918688                     /lib/x86_64-linux-gnu/libnss_files-2.23.so
7f9748605000-7f9748606000 rw-p 0000b000 08:11 918688                     /lib/x86_64-linux-gnu/libnss_files-2.23.so
7f9748606000-7f974860c000 rw-p 00000000 00:00 0 
7f974860c000-7f974860d000 ---p 00000000 00:00 0 
7f974860d000-7f9748e0d000 rw-p 00000000 00:00 0 
7f9748e0d000-7f9748e0e000 ---p 00000000 00:00 0 
7f9748e0e000-7f974960e000 rw-p 00000000 00:00 0 
7f974960e000-7f974960f000 ---p 00000000 00:00 0 
7f974960f000-7f9749e0f000 rw-p 00000000 00:00 0 
7f9749e0f000-7f9749e10000 ---p 00000000 00:00 0 
7f9749e10000-7f974a610000 rw-p 00000000 00:00 0 
7f974a610000-7f974a611000 ---p 00000000 00:00 0 
7f974a611000-7f974ae11000 rw-p 00000000 00:00 0 
7f974ae11000-7f974ae12000 ---p 00000000 00:00 0 
7f974ae12000-7f974b652000 rw-p 00000000 00:00 0 
7f974b652000-7f974b689000 r-xp 00000000 08:11 1060330                    /usr/local/lib/python3.5/dist-packages/rasterio/_features.cpython-35m-x86_64-linux-gnu.so
7f974b689000-7f974b888000 ---p 00037000 08:11 1060330                    /usr/local/lib/python3.5/dist-packages/rasterio/_features.cpython-35m-x86_64-linux-gnu.so
7f974b888000-7f974b88e000 rw-p 00036000 08:11 1060330                    /usr/local/lib/python3.5/dist-packages/rasterio/_features.cpython-35m-x86_64-linux-gnu.so
7f974b88e000-7f974b88f000 rw-p 00000000 00:00 0 
7f974b88f000-7f974b893000 rw-p 0003c000 08:11 1060330                    /usr/local/lib/python3.5/dist-packages/rasterio/_features.cpython-35m-x86_64-linux-gnu.so
7f974b893000-7f974b8fb000 r-xp 00000000 08:11 1060335                    /usr/local/lib/python3.5/dist-packages/rasterio/_warp.cpython-35m-x86_64-linux-gnu.so
7f974b8fb000-7f974bafa000 ---p 00068000 08:11 1060335                    /usr/local/lib/python3.5/dist-packages/rasterio/_warp.cpython-35m-x86_64-linux-gnu.so
7f974bafa000-7f974bb03000 rw-p 00067000 08:11 1060335                    /usr/local/lib/python3.5/dist-packages/rasterio/_warp.cpython-35m-x86_64-linux-gnu.so
7f974bb03000-7f974bb05000 rw-p 00000000 00:00 0 
7f974bb05000-7f974bb0a000 rw-p 00071000 08:11 1060335                    /usr/local/lib/python3.5/dist-packages/rasterio/_warp.cpython-35m-x86_64-linux-gnu.so
7f974bb0a000-7f974bb4a000 rw-p 00000000 00:00 0 
7f974bb4a000-7f974bbfb000 r-xp 00000000 08:11 1060332                    /usr/local/lib/python3.5/dist-packages/rasterio/_io.cpython-35m-x86_64-linux-gnu.so
7f974bbfb000-7f974bdfa000 ---p 000b1000 08:11 1060332                    /usr/local/lib/python3.5/dist-packages/rasterio/_io.cpython-35m-x86_64-linux-gnu.so
7f974bdfa000-7f974be07000 rw-p 000b0000 08:11 1060332                    /usr/local/lib/python3.5/dist-packages/rasterio/_io.cpython-35m-x86_64-linux-gnu.so
7f974be07000-7f974be09000 rw-p 00000000 00:00 0 
7f974be09000-7f974be0d000 rw-p 000bd000 08:11 1060332                    /usr/local/lib/python3.5/dist-packages/rasterio/_io.cpython-35m-x86_64-linux-gnu.so
7f974be0d000-7f974be15000 r-xp 00000000 08:11 1060334                    /usr/local/lib/python3.5/dist-packages/rasterio/_transform.cpython-35m-x86_64-linux-gnu.so
7f974be15000-7f974c015000 ---p 00008000 08:11 1060334                    /usr/local/lib/python3.5/dist-packages/rasterio/_transform.cpython-35m-x86_64-linux-gnu.so
7f974c015000-7f974c016000 rw-p 00008000 08:11 1060334                    /usr/local/lib/python3.5/dist-packages/rasterio/_transform.cpython-35m-x86_64-linux-gnu.so
7f974c016000-7f974c019000 rw-p 0000a000 08:11 1060334                    /usr/local/lib/python3.5/dist-packages/rasterio/_transform.cpython-35m-x86_64-linux-gnu.so
7f974c019000-7f974c0d9000 rw-p 00000000 00:00 0 
7f974c0d9000-7f974c125000 r-xp 00000000 08:11 1060327                    /usr/local/lib/python3.5/dist-packages/rasterio/_env.cpython-35m-x86_64-linux-gnu.so
7f974c125000-7f974c324000 ---p 0004c000 08:11 1060327                    /usr/local/lib/python3.5/dist-packages/rasterio/_env.cpython-35m-x86_64-linux-gnu.so
7f974c324000-7f974c32a000 rw-p 0004b000 08:11 1060327                    /usr/local/lib/python3.5/dist-packages/rasterio/_env.cpython-35m-x86_64-linux-gnu.so
7f974c32a000-7f974c32b000 rw-p 00000000 00:00 0 
7f974c32b000-7f974c330000 rw-p 00052000 08:11 1060327                    /usr/local/lib/python3.5/dist-packages/rasterio/_env.cpython-35m-x86_64-linux-gnu.so
7f974c330000-7f974c373000 r-xp 00000000 08:11 1060326                    /usr/local/lib/python3.5/dist-packages/rasterio/_crs.cpython-35m-x86_64-linux-gnu.so
7f974c373000-7f974c572000 ---p 00043000 08:11 1060326                    /usr/local/lib/python3.5/dist-packages/rasterio/_crs.cpython-35m-x86_64-linux-gnu.so
7f974c572000-7f974c578000 rw-p 00042000 08:11 1060326                    /usr/local/lib/python3.5/dist-packages/rasterio/_crs.cpython-35m-x86_64-linux-gnu.so
7f974c578000-7f974c579000 rw-p 00000000 00:00 0 
7f974c579000-7f974c57d000 rw-p 00048000 08:11 1060326                    /usr/local/lib/python3.5/dist-packages/rasterio/_crs.cpython-35m-x86_64-linux-gnu.so
7f974c57d000-7f974c6bd000 rw-p 00000000 00:00 0 
7f974c6bd000-7f974c75b000 r-xp 00000000 08:11 1060176                    /usr/local/lib/python3.5/dist-packages/numpy/random/_generator.cpython-35m-x86_64-linux-gnu.so
7f974c75b000-7f974c95a000 ---p 0009e000 08:11 1060176                    /usr/local/lib/python3.5/dist-packages/numpy/random/_generator.cpython-35m-x86_64-linux-gnu.so
7f974c95a000-7f974c97f000 rw-p 0009d000 08:11 1060176                    /usr/local/lib/python3.5/dist-packages/numpy/random/_generator.cpython-35m-x86_64-linux-gnu.so
7f974c97f000-7f974c981000 rw-p 00000000 00:00 0 
7f974c981000-7f974c98c000 r-xp 00000000 08:11 1060181                    /usr/local/lib/python3.5/dist-packages/numpy/random/_sfc64.cpython-35m-x86_64-linux-gnu.so
7f974c98c000-7f974cb8c000 ---p 0000b000 08:11 1060181                    /usr/local/lib/python3.5/dist-packages/numpy/random/_sfc64.cpython-35m-x86_64-linux-gnu.so
7f974cb8c000-7f974cb8d000 rw-p 0000b000 08:11 1060181                    /usr/local/lib/python3.5/dist-packages/numpy/random/_sfc64.cpython-35m-x86_64-linux-gnu.so
7f974cb8d000-7f974cb8e000 rw-p 00000000 00:00 0 
7f974cb8e000-7f974cb9d000 r-xp 00000000 08:11 1060178                    /usr/local/lib/python3.5/dist-packages/numpy/random/_pcg64.cpython-35m-x86_64-linux-gnu.so
7f974cb9d000-7f974cd9d000 ---p 0000f000 08:11 1060178                    /usr/local/lib/python3.5/dist-packages/numpy/random/_pcg64.cpython-35m-x86_64-linux-gnu.so
7f974cd9d000-7f974cd9f000 rw-p 0000f000 08:11 1060178                    /usr/local/lib/python3.5/dist-packages/numpy/random/_pcg64.cpython-35m-x86_64-linux-gnu.so
7f974cd9f000-7f974cdb1000 r-xp 00000000 08:11 1060179                    /usr/local/lib/python3.5/dist-packages/numpy/random/_philox.cpython-35m-x86_64-linux-gnu.so
7f974cdb1000-7f974cfb0000 ---p 00012000 08:11 1060179                    /usr/local/lib/python3.5/dist-packages/numpy/random/_philox.cpython-35m-x86_64-linux-gnu.so
7f974cfb0000-7f974cfb2000 rw-p 00011000 08:11 1060179                    /usr/local/lib/python3.5/dist-packages/numpy/random/_philox.cpython-35m-x86_64-linux-gnu.so
7f974cfb2000-7f974cff3000 rw-p 00000000 00:00 0 
7f974cff3000-7f974d00b000 r-xp 00000000 08:11 1060177                    /usr/local/lib/python3.5/dist-packages/numpy/random/_mt19937.cpython-35m-x86_64-linux-gnu.so
7f974d00b000-7f974d20b000 ---p 00018000 08:11 1060177                    /usr/local/lib/python3.5/dist-packages/numpy/random/_mt19937.cpython-35m-x86_64-linux-gnu.so
7f974d20b000-7f974d20d000 rw-p 00018000 08:11 1060177                    /usr/local/lib/python3.5/dist-packages/numpy/random/_mt19937.cpython-35m-x86_64-linux-gnu.so
7f974d20d000-7f974d261000 r-xp 00000000 08:11 1060160                    /usr/local/lib/python3.5/dist-packages/numpy/random/_bounded_integers.cpython-35m-x86_64-linux-gnu.so
7f974d261000-7f974d461000 ---p 00054000 08:11 1060160                    /usr/local/lib/python3.5/dist-packages/numpy/random/_bounded_integers.cpython-35m-x86_64-linux-gnu.so
7f974d461000-7f974d463000 rw-p 00054000 08:11 1060160                    /usr/local/lib/python3.5/dist-packages/numpy/random/_bounded_integers.cpython-35m-x86_64-linux-gnu.so
7f974d463000-7f974d499000 r-xp 00000000 08:11 1060162                    /usr/local/lib/python3.5/dist-packages/numpy/random/_common.cpython-35m-x86_64-linux-gnu.so
7f974d499000-7f974d698000 ---p 00036000 08:11 1060162                    /usr/local/lib/python3.5/dist-packages/numpy/random/_common.cpython-35m-x86_64-linux-gnu.so
7f974d698000-7f974d69a000 rw-p 00035000 08:11 1060162                    /usr/local/lib/python3.5/dist-packages/numpy/random/_common.cpython-35m-x86_64-linux-gnu.so
7f974d69a000-7f974d69b000 rw-p 00000000 00:00 0 
7f974d69b000-7f974d6c3000 r-xp 00000000 08:11 1060158                    /usr/local/lib/python3.5/dist-packages/numpy/random/_bit_generator.cpython-35m-x86_64-linux-gnu.so
7f974d6c3000-7f974d8c2000 ---p 00028000 08:11 1060158                    /usr/local/lib/python3.5/dist-packages/numpy/random/_bit_generator.cpython-35m-x86_64-linux-gnu.so
7f974d8c2000-7f974d8c8000 rw-p 00027000 08:11 1060158                    /usr/local/lib/python3.5/dist-packages/numpy/random/_bit_generator.cpython-35m-x86_64-linux-gnu.so
7f974d8c8000-7f974d947000 r-xp 00000000 08:11 1060182                    /usr/local/lib/python3.5/dist-packages/numpy/random/mtrand.cpython-35m-x86_64-linux-gnu.so
7f974d947000-7f974db46000 ---p 0007f000 08:11 1060182                    /usr/local/lib/python3.5/dist-packages/numpy/random/mtrand.cpython-35m-x86_64-linux-gnu.so
7f974db46000-7f974db6d000 rw-p 0007e000 08:11 1060182                    /usr/local/lib/python3.5/dist-packages/numpy/random/mtrand.cpython-35m-x86_64-linux-gnu.so
7f974db6d000-7f974dbae000 rw-p 00000000 00:00 0 
7f974dbae000-7f974dbc4000 r-xp 00000000 08:11 1059567                    /usr/local/lib/python3.5/dist-packages/numpy/fft/_pocketfft_internal.cpython-35m-x86_64-linux-gnu.so
7f974dbc4000-7f974ddc3000 ---p 00016000 08:11 1059567                    /usr/local/lib/python3.5/dist-packages/numpy/fft/_pocketfft_internal.cpython-35m-x86_64-linux-gnu.so
7f974ddc3000-7f974ddc4000 rw-p 00015000 08:11 1059567                    /usr/local/lib/python3.5/dist-packages/numpy/fft/_pocketfft_internal.cpython-35m-x86_64-linux-gnu.so
7f974ddc4000-7f974ddfb000 r-xp 00000000 08:11 1091570                    /usr/lib/x86_64-linux-gnu/libmpdec.so.2.4.2
7f974ddfb000-7f974dffa000 ---p 00037000 08:11 1091570                    /usr/lib/x86_64-linux-gnu/libmpdec.so.2.4.2
7f974dffa000-7f974dffb000 r--p 00036000 08:11 1091570                    /usr/lib/x86_64-linux-gnu/libmpdec.so.2.4.2
7f974dffb000-7f974dffc000 rw-p 00037000 08:11 1091570                    /usr/lib/x86_64-linux-gnu/libmpdec.so.2.4.2
7f974dffc000-7f974e020000 r-xp 00000000 08:11 1071421                    /usr/lib/python3.5/lib-dynload/_decimal.cpython-35m-x86_64-linux-gnu.so
7f974e020000-7f974e21f000 ---p 00024000 08:11 1071421                    /usr/lib/python3.5/lib-dynload/_decimal.cpython-35m-x86_64-linux-gnu.so
7f974e21f000-7f974e220000 r--p 00023000 08:11 1071421                    /usr/lib/python3.5/lib-dynload/_decimal.cpython-35m-x86_64-linux-gnu.so
7f974e220000-7f974e229000 rw-p 00024000 08:11 1071421                    /usr/lib/python3.5/lib-dynload/_decimal.cpython-35m-x86_64-linux-gnu.so
7f974e229000-7f974e2e9000 rw-p 00000000 00:00 0 
7f974e2e9000-7f974e314000 r-xp 00000000 08:11 1059803                    /usr/local/lib/python3.5/dist-packages/numpy/linalg/_umath_linalg.cpython-35m-x86_64-linux-gnu.so
7f974e314000-7f974e514000 ---p 0002b000 08:11 1059803                    /usr/local/lib/python3.5/dist-packages/numpy/linalg/_umath_linalg.cpython-35m-x86_64-linux-gnu.so
7f974e514000-7f974e516000 rw-p 0002b000 08:11 1059803                    /usr/local/lib/python3.5/dist-packages/numpy/linalg/_umath_linalg.cpython-35m-x86_64-linux-gnu.so
7f974e516000-7f974e519000 rw-p 000d4000 08:11 1059803                    /usr/local/lib/python3.5/dist-packages/numpy/linalg/_umath_linalg.cpython-35m-x86_64-linux-gnu.so
7f974e519000-7f974e51d000 r-xp 00000000 08:11 1059804                    /usr/local/lib/python3.5/dist-packages/numpy/linalg/lapack_lite.cpython-35m-x86_64-linux-gnu.so
7f974e51d000-7f974e71d000 ---p 00004000 08:11 1059804                    /usr/local/lib/python3.5/dist-packages/numpy/linalg/lapack_lite.cpython-35m-x86_64-linux-gnu.so
7f974e71d000-7f974e71e000 rw-p 00004000 08:11 1059804                    /usr/local/lib/python3.5/dist-packages/numpy/linalg/lapack_lite.cpython-35m-x86_64-linux-gnu.so
7f974e71e000-7f974e720000 rw-p 00019000 08:11 1059804                    /usr/local/lib/python3.5/dist-packages/numpy/linalg/lapack_lite.cpython-35m-x86_64-linux-gnu.so
7f974e720000-7f974e760000 rw-p 00000000 00:00 0 
7f974e760000-7f974e77f000 r-xp 00000000 08:11 1059063                    /usr/local/lib/python3.5/dist-packages/numpy/core/_multiarray_tests.cpython-35m-x86_64-linux-gnu.so
7f974e77f000-7f974e97f000 ---p 0001f000 08:11 1059063                    /usr/local/lib/python3.5/dist-packages/numpy/core/_multiarray_tests.cpython-35m-x86_64-linux-gnu.so
7f974e97f000-7f974e981000 rw-p 0001f000 08:11 1059063                    /usr/local/lib/python3.5/dist-packages/numpy/core/_multiarray_tests.cpython-35m-x86_64-linux-gnu.so
7f974e981000-7f9752b42000 rw-p 00000000 00:00 0 
7f9752b42000-7f9752b43000 ---p 00000000 00:00 0 
7f9752b43000-7f9755343000 rw-p 00000000 00:00 0 
7f9755343000-7f9755344000 ---p 00000000 00:00 0 
7f9755344000-7f9755b44000 rw-p 00000000 00:00 0 
7f9755b44000-7f9755b45000 ---p 00000000 00:00 0 
7f9755b45000-7f9756345000 rw-p 00000000 00:00 0 
7f9756345000-7f9756435000 r-xp 00000000 08:11 1058977                    /usr/local/lib/python3.5/dist-packages/numpy/.libs/libgfortran-ed201abd.so.3.0.0
7f9756435000-7f9756634000 ---p 000f0000 08:11 1058977                    /usr/local/lib/python3.5/dist-packages/numpy/.libs/libgfortran-ed201abd.so.3.0.0
7f9756634000-7f9756636000 rw-p 000ef000 08:11 1058977                    /usr/local/lib/python3.5/dist-packages/numpy/.libs/libgfortran-ed201abd.so.3.0.0
7f9756636000-7f9756637000 rw-p 00000000 00:00 0 
7f9756637000-7f975663f000 rw-p 000f2000 08:11 1058977                    /usr/local/lib/python3.5/dist-packages/numpy/.libs/libgfortran-ed201abd.so.3.0.0
7f975663f000-7f9758135000 r-xp 00000000 08:11 1058978                    /usr/local/lib/python3.5/dist-packages/numpy/.libs/libopenblasp-r0-34a18dc3.3.7.so
7f9758135000-7f9758334000 ---p 01af6000 08:11 1058978                    /usr/local/lib/python3.5/dist-packages/numpy/.libs/libopenblasp-r0-34a18dc3.3.7.so
7f9758334000-7f975834d000 rw-p 01af5000 08:11 1058978                    /usr/local/lib/python3.5/dist-packages/numpy/.libs/libopenblasp-r0-34a18dc3.3.7.so
7f975834d000-7f9758358000 rw-p 00000000 00:00 0 
7f9758358000-7f97583d0000 rw-p 01be1000 08:11 1058978                    /usr/local/lib/python3.5/dist-packages/numpy/.libs/libopenblasp-r0-34a18dc3.3.7.so
7f97583d0000-7f9758775000 r-xp 00000000 08:11 1059064                    /usr/local/lib/python3.5/dist-packages/numpy/core/_multiarray_umath.cpython-35m-x86_64-linux-gnu.so
7f9758775000-7f9758974000 ---p 003a5000 08:11 1059064                    /usr/local/lib/python3.5/dist-packages/numpy/core/_multiarray_umath.cpython-35m-x86_64-linux-gnu.so
7f9758974000-7f9758993000 rw-p 003a4000 08:11 1059064                    /usr/local/lib/python3.5/dist-packages/numpy/core/_multiarray_umath.cpython-35m-x86_64-linux-gnu.so
7f9758993000-7f97589b4000 rw-p 00000000 00:00 0 
7f97589b4000-7f97589bb000 rw-p 01473000 08:11 1059064                    /usr/local/lib/python3.5/dist-packages/numpy/core/_multiarray_umath.cpython-35m-x86_64-linux-gnu.so
7f97589bb000-7f97589e6000 r-xp 00000000 08:11 1060333                    /usr/local/lib/python3.5/dist-packages/rasterio/_shim.cpython-35m-x86_64-linux-gnu.so
7f97589e6000-7f9758be5000 ---p 0002b000 08:11 1060333                    /usr/local/lib/python3.5/dist-packages/rasterio/_shim.cpython-35m-x86_64-linux-gnu.so
7f9758be5000-7f9758be8000 rw-p 0002a000 08:11 1060333                    /usr/local/lib/python3.5/dist-packages/rasterio/_shim.cpython-35m-x86_64-linux-gnu.so
7f9758be8000-7f9758be9000 rw-p 00000000 00:00 0 
7f9758be9000-7f9758bed000 rw-p 0002e000 08:11 1060333                    /usr/local/lib/python3.5/dist-packages/rasterio/_shim.cpython-35m-x86_64-linux-gnu.so
7f9758bed000-7f9758bfc000 r-xp 00000000 08:11 1060328                    /usr/local/lib/python3.5/dist-packages/rasterio/_err.cpython-35m-x86_64-linux-gnu.so
7f9758bfc000-7f9758dfc000 ---p 0000f000 08:11 1060328                    /usr/local/lib/python3.5/dist-packages/rasterio/_err.cpython-35m-x86_64-linux-gnu.so
7f9758dfc000-7f9758e01000 rw-p 0000f000 08:11 1060328                    /usr/local/lib/python3.5/dist-packages/rasterio/_err.cpython-35m-x86_64-linux-gnu.so
7f9758e01000-7f9758e41000 rw-p 00000000 00:00 0 
7f9758e41000-7f9758e49000 r-xp 00000000 08:11 1060280                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libaec-f0d4887b.so.0.0.10
7f9758e49000-7f9759048000 ---p 00008000 08:11 1060280                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libaec-f0d4887b.so.0.0.10
7f9759048000-7f9759049000 rw-p 00007000 08:11 1060280                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libaec-f0d4887b.so.0.0.10
7f9759049000-7f975904a000 rw-p 00009000 08:11 1060280                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libaec-f0d4887b.so.0.0.10
7f975904a000-7f975904c000 r-xp 00000000 08:11 1060296                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libsz-53d02de5.so.2.0.1
7f975904c000-7f975924b000 ---p 00002000 08:11 1060296                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libsz-53d02de5.so.2.0.1
7f975924b000-7f975924f000 rw-p 00001000 08:11 1060296                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libsz-53d02de5.so.2.0.1
7f975924f000-7f975926f000 r-xp 00000000 08:11 1060287                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libhdf5_hl-92c1cdd8.so.100.1.2
7f975926f000-7f975946f000 ---p 00020000 08:11 1060287                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libhdf5_hl-92c1cdd8.so.100.1.2
7f975946f000-7f9759470000 rw-p 00020000 08:11 1060287                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libhdf5_hl-92c1cdd8.so.100.1.2
7f9759470000-7f9759471000 rw-p 00000000 00:00 0 
7f9759471000-7f975947d000 rw-p 00022000 08:11 1060287                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libhdf5_hl-92c1cdd8.so.100.1.2
7f975947d000-7f9759826000 r-xp 00000000 08:11 1060286                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libhdf5-66e8dd7b.so.103.1.0
7f9759826000-7f9759a25000 ---p 003a9000 08:11 1060286                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libhdf5-66e8dd7b.so.103.1.0
7f9759a25000-7f9759a37000 rw-p 003a8000 08:11 1060286                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libhdf5-66e8dd7b.so.103.1.0
7f9759a37000-7f9759a3a000 rw-p 00000000 00:00 0 
7f9759a3a000-7f9759a8b000 rw-p 003ba000 08:11 1060286                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libhdf5-66e8dd7b.so.103.1.0
7f9759a8b000-7f9759bc1000 r-xp 00000000 08:11 1060290                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libnetcdf-8080e985.so.11.0.4
7f9759bc1000-7f9759dc0000 ---p 00136000 08:11 1060290                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libnetcdf-8080e985.so.11.0.4
7f9759dc0000-7f9759e13000 rw-p 00135000 08:11 1060290                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libnetcdf-8080e985.so.11.0.4
7f9759e13000-7f975ce21000 rw-p 00000000 00:00 0 
7f975ce21000-7f975ce6c000 rw-p 00188000 08:11 1060290                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libnetcdf-8080e985.so.11.0.4
7f975ce6c000-7f975cec4000 r-xp 00000000 08:11 1060292                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libopenjp2-8f6da918.so.2.3.0
7f975cec4000-7f975d0c4000 ---p 00058000 08:11 1060292                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libopenjp2-8f6da918.so.2.3.0
7f975d0c4000-7f975d0c8000 rw-p 00058000 08:11 1060292                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libopenjp2-8f6da918.so.2.3.0
7f975d0c8000-7f975d0fb000 r-xp 00000000 08:11 1060282                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libexpat-09c47d4c.so.1.6.8
7f975d0fb000-7f975d2fb000 ---p 00033000 08:11 1060282                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libexpat-09c47d4c.so.1.6.8
7f975d2fb000-7f975d2fd000 rw-p 00033000 08:11 1060282                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libexpat-09c47d4c.so.1.6.8
7f975d2fd000-7f975d2fe000 rw-p 00036000 08:11 1060282                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libexpat-09c47d4c.so.1.6.8
7f975d2fe000-7f975d42b000 r-xp 00000000 08:11 1060295                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libsqlite3-fdd57a2d.so.0.8.6
7f975d42b000-7f975d62a000 ---p 0012d000 08:11 1060295                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libsqlite3-fdd57a2d.so.0.8.6
7f975d62a000-7f975d62f000 rw-p 0012c000 08:11 1060295                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libsqlite3-fdd57a2d.so.0.8.6
7f975d62f000-7f975d630000 rw-p 00000000 00:00 0 
7f975d630000-7f975d634000 rw-p 00132000 08:11 1060295                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libsqlite3-fdd57a2d.so.0.8.6
7f975d634000-7f975d6f2000 r-xp 00000000 08:11 1060297                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libwebp-fbd93615.so.7.0.5
7f975d6f2000-7f975d8f1000 ---p 000be000 08:11 1060297                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libwebp-fbd93615.so.7.0.5
7f975d8f1000-7f975d8f2000 rw-p 000bd000 08:11 1060297                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libwebp-fbd93615.so.7.0.5
7f975d8f2000-7f975d8f4000 rw-p 00000000 00:00 0 
7f975d8f4000-7f975d8f5000 rw-p 000bf000 08:11 1060297                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libwebp-fbd93615.so.7.0.5
7f975d8f5000-7f975e995000 r-xp 00000000 08:11 1060283                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libgdal-63d0ced7.so.20.5.4
7f975e995000-7f975eb95000 ---p 010a0000 08:11 1060283                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libgdal-63d0ced7.so.20.5.4
7f975eb95000-7f975ec95000 rw-p 010a0000 08:11 1060283                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libgdal-63d0ced7.so.20.5.4
7f975ec95000-7f975ec9b000 rw-p 00000000 00:00 0 
7f975ec9b000-7f975f1a9000 rw-p 011a1000 08:11 1060283                    /usr/local/lib/python3.5/dist-packages/rasterio/.libs/libgdal-63d0ced7.so.20.5.4
7f975f1a9000-7f975f219000 r-xp 00000000 08:11 1060325                    /usr/local/lib/python3.5/dist-packages/rasterio/_base.cpython-35m-x86_64-linux-gnu.so
7f975f219000-7f975f418000 ---p 00070000 08:11 1060325                    /usr/local/lib/python3.5/dist-packages/rasterio/_base.cpython-35m-x86_64-linux-gnu.so
7f975f418000-7f975f421000 rw-p 0006f000 08:11 1060325                    /usr/local/lib/python3.5/dist-packages/rasterio/_base.cpython-35m-x86_64-linux-gnu.so
7f975f421000-7f975f423000 rw-p 00000000 00:00 0 
7f975f423000-7f975f428000 rw-p 00079000 08:11 1060325                    /usr/local/lib/python3.5/dist-packages/rasterio/_base.cpython-35m-x86_64-linux-gnu.so
7f975f428000-7f975f435000 r-xp 00000000 08:11 1058727                    /usr/local/lib/python3.5/dist-packages/fiona/_crs.cpython-35m-x86_64-linux-gnu.so
7f975f435000-7f975f634000 ---p 0000d000 08:11 1058727                    /usr/local/lib/python3.5/dist-packages/fiona/_crs.cpython-35m-x86_64-linux-gnu.so
7f975f634000-7f975f639000 rw-p 0000c000 08:11 1058727                    /usr/local/lib/python3.5/dist-packages/fiona/_crs.cpython-35m-x86_64-linux-gnu.so
7f975f639000-7f975f679000 rw-p 00000000 00:00 0 
7f975f679000-7f975f682000 r-xp 00000000 08:11 1058961                    /usr/local/lib/python3.5/dist-packages/fiona/schema.cpython-35m-x86_64-linux-gnu.so
7f975f682000-7f975f881000 ---p 00009000 08:11 1058961                    /usr/local/lib/python3.5/dist-packages/fiona/schema.cpython-35m-x86_64-linux-gnu.so
7f975f881000-7f975f886000 rw-p 00008000 08:11 1058961                    /usr/local/lib/python3.5/dist-packages/fiona/schema.cpython-35m-x86_64-linux-gnu.so
7f975f886000-7f975f8c6000 rw-p 00000000 00:00 0 
7f975f8c6000-7f975f8f8000 r-xp 00000000 08:11 1058728                    /usr/local/lib/python3.5/dist-packages/fiona/_env.cpython-35m-x86_64-linux-gnu.so
7f975f8f8000-7f975faf7000 ---p 00032000 08:11 1058728                    /usr/local/lib/python3.5/dist-packages/fiona/_env.cpython-35m-x86_64-linux-gnu.so
7f975faf7000-7f975fafb000 rw-p 00031000 08:11 1058728                    /usr/local/lib/python3.5/dist-packages/fiona/_env.cpython-35m-x86_64-linux-gnu.so
7f975fafb000-7f975fafc000 rw-p 00000000 00:00 0 
7f975fafc000-7f975fb00000 rw-p 00036000 08:11 1058728                    /usr/local/lib/python3.5/dist-packages/fiona/_env.cpython-35m-x86_64-linux-gnu.so
7f975fb00000-7f975fb04000 r-xp 00000000 08:11 918736                     /lib/x86_64-linux-gnu/libuuid.so.1.3.0
7f975fb04000-7f975fd03000 ---p 00004000 08:11 918736                     /lib/x86_64-linux-gnu/libuuid.so.1.3.0
7f975fd03000-7f975fd04000 r--p 00003000 08:11 918736                     /lib/x86_64-linux-gnu/libuuid.so.1.3.0
7f975fd04000-7f975fd05000 rw-p 00004000 08:11 918736                     /lib/x86_64-linux-gnu/libuuid.so.1.3.0
7f975fd05000-7f975ff20000 r-xp 00000000 08:11 336098                     /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7f975ff20000-7f976011f000 ---p 0021b000 08:11 336098                     /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7f976011f000-7f976013b000 r--p 0021a000 08:11 336098                     /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7f976013b000-7f9760147000 rw-p 00236000 08:11 336098                     /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7f9760147000-7f976014a000 rw-p 00000000 00:00 0 
7f976014a000-7f9760150000 r-xp 00000000 08:11 1071422                    /usr/lib/python3.5/lib-dynload/_hashlib.cpython-35m-x86_64-linux-gnu.so
7f9760150000-7f976034f000 ---p 00006000 08:11 1071422                    /usr/lib/python3.5/lib-dynload/_hashlib.cpython-35m-x86_64-linux-gnu.so
7f976034f000-7f9760350000 r--p 00005000 08:11 1071422                    /usr/lib/python3.5/lib-dynload/_hashlib.cpython-35m-x86_64-linux-gnu.so
7f9760350000-7f9760351000 rw-p 00006000 08:11 1071422                    /usr/lib/python3.5/lib-dynload/_hashlib.cpython-35m-x86_64-linux-gnu.so
7f9760351000-7f9760372000 r-xp 00000000 08:11 918670                     /lib/x86_64-linux-gnu/liblzma.so.5.0.0
7f9760372000-7f9760571000 ---p 00021000 08:11 918670                     /lib/x86_64-linux-gnu/liblzma.so.5.0.0
7f9760571000-7f9760572000 r--p 00020000 08:11 918670                     /lib/x86_64-linux-gnu/liblzma.so.5.0.0
7f9760572000-7f9760573000 rw-p 00021000 08:11 918670                     /lib/x86_64-linux-gnu/liblzma.so.5.0.0
7f9760573000-7f976057a000 r-xp 00000000 08:11 1071425                    /usr/lib/python3.5/lib-dynload/_lzma.cpython-35m-x86_64-linux-gnu.so
7f976057a000-7f9760779000 ---p 00007000 08:11 1071425                    /usr/lib/python3.5/lib-dynload/_lzma.cpython-35m-x86_64-linux-gnu.so
7f9760779000-7f976077a000 r--p 00006000 08:11 1071425                    /usr/lib/python3.5/lib-dynload/_lzma.cpython-35m-x86_64-linux-gnu.so
7f976077a000-7f976077c000 rw-p 00007000 08:11 1071425                    /usr/lib/python3.5/lib-dynload/_lzma.cpython-35m-x86_64-linux-gnu.so
7f976077c000-7f976078b000 r-xp 00000000 08:11 918638                     /lib/x86_64-linux-gnu/libbz2.so.1.0.4
7f976078b000-7f976098a000 ---p 0000f000 08:11 918638                     /lib/x86_64-linux-gnu/libbz2.so.1.0.4
7f976098a000-7f976098b000 r--p 0000e000 08:11 918638                     /lib/x86_64-linux-gnu/libbz2.so.1.0.4
7f976098b000-7f976098c000 rw-p 0000f000 08:11 918638                     /lib/x86_64-linux-gnu/libbz2.so.1.0.4
7f976098c000-7f9760990000 r-xp 00000000 08:11 1071407                    /usr/lib/python3.5/lib-dynload/_bz2.cpython-35m-x86_64-linux-gnu.so
7f9760990000-7f9760b8f000 ---p 00004000 08:11 1071407                    /usr/lib/python3.5/lib-dynload/_bz2.cpython-35m-x86_64-linux-gnu.so
7f9760b8f000-7f9760b90000 r--p 00003000 08:11 1071407                    /usr/lib/python3.5/lib-dynload/_bz2.cpython-35m-x86_64-linux-gnu.so
7f9760b90000-7f9760b91000 rw-p 00004000 08:11 1071407                    /usr/lib/python3.5/lib-dynload/_bz2.cpython-35m-x86_64-linux-gnu.so
7f9760b91000-7f9760c11000 rw-p 00000000 00:00 0 
7f9760c11000-7f9760c33000 r-xp 00000000 08:11 1071416                    /usr/lib/python3.5/lib-dynload/_ctypes.cpython-35m-x86_64-linux-gnu.so
7f9760c33000-7f9760e32000 ---p 00022000 08:11 1071416                    /usr/lib/python3.5/lib-dynload/_ctypes.cpython-35m-x86_64-linux-gnu.so
7f9760e32000-7f9760e33000 r--p 00021000 08:11 1071416                    /usr/lib/python3.5/lib-dynload/_ctypes.cpython-35m-x86_64-linux-gnu.so
7f9760e33000-7f9760e37000 rw-p 00022000 08:11 1071416                    /usr/lib/python3.5/lib-dynload/_ctypes.cpython-35m-x86_64-linux-gnu.so
7f9760e37000-7f9760e78000 rw-p 00000000 00:00 0 
7f9760e78000-7f9760e89000 r-xp 00000000 08:11 1071423                    /usr/lib/python3.5/lib-dynload/_json.cpython-35m-x86_64-linux-gnu.so
7f9760e89000-7f9761088000 ---p 00011000 08:11 1071423                    /usr/lib/python3.5/lib-dynload/_json.cpython-35m-x86_64-linux-gnu.so
7f9761088000-7f9761089000 r--p 00010000 08:11 1071423                    /usr/lib/python3.5/lib-dynload/_json.cpython-35m-x86_64-linux-gnu.so
7f9761089000-7f976108a000 rw-p 00011000 08:11 1071423                    /usr/lib/python3.5/lib-dynload/_json.cpython-35m-x86_64-linux-gnu.so
7f976108a000-7f976109e000 r-xp 00000000 08:11 1058729                    /usr/local/lib/python3.5/dist-packages/fiona/_err.cpython-35m-x86_64-linux-gnu.so
7f976109e000-7f976129e000 ---p 00014000 08:11 1058729                    /usr/local/lib/python3.5/dist-packages/fiona/_err.cpython-35m-x86_64-linux-gnu.so
7f976129e000-7f97612a0000 rw-p 00014000 08:11 1058729                    /usr/local/lib/python3.5/dist-packages/fiona/_err.cpython-35m-x86_64-linux-gnu.so
7f97612a0000-7f97612a1000 rw-p 00000000 00:00 0 
7f97612a1000-7f97612a4000 rw-p 00017000 08:11 1058729                    /usr/local/lib/python3.5/dist-packages/fiona/_err.cpython-35m-x86_64-linux-gnu.so
7f97612a4000-7f97612b3000 r-xp 00000000 08:11 1058733                    /usr/local/lib/python3.5/dist-packages/fiona/_shim.cpython-35m-x86_64-linux-gnu.so
7f97612b3000-7f97614b3000 ---p 0000f000 08:11 1058733                    /usr/local/lib/python3.5/dist-packages/fiona/_shim.cpython-35m-x86_64-linux-gnu.so
7f97614b3000-7f97614b4000 rw-p 0000f000 08:11 1058733                    /usr/local/lib/python3.5/dist-packages/fiona/_shim.cpython-35m-x86_64-linux-gnu.so
7f97614b4000-7f97614b7000 rw-p 00011000 08:11 1058733                    /usr/local/lib/python3.5/dist-packages/fiona/_shim.cpython-35m-x86_64-linux-gnu.so
7f97614b7000-7f97614d8000 r-xp 00000000 08:11 1058730                    /usr/local/lib/python3.5/dist-packages/fiona/_geometry.cpython-35m-x86_64-linux-gnu.so
7f97614d8000-7f97616d7000 ---p 00021000 08:11 1058730                    /usr/local/lib/python3.5/dist-packages/fiona/_geometry.cpython-35m-x86_64-linux-gnu.so
7f97616d7000-7f97616df000 rw-p 00020000 08:11 1058730                    /usr/local/lib/python3.5/dist-packages/fiona/_geometry.cpython-35m-x86_64-linux-gnu.so
7f97616df000-7f976170d000 r-xp 00000000 08:11 1058706                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libnghttp2-11cb20b8.so.14.17.1
7f976170d000-7f976190c000 ---p 0002e000 08:11 1058706                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libnghttp2-11cb20b8.so.14.17.1
7f976190c000-7f9761911000 rw-p 0002d000 08:11 1058706                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libnghttp2-11cb20b8.so.14.17.1
7f9761911000-7f9761ad1000 r-xp 00000000 08:11 1058702                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libgeos--no-undefined-b94097bf.so
7f9761ad1000-7f9761cd0000 ---p 001c0000 08:11 1058702                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libgeos--no-undefined-b94097bf.so
7f9761cd0000-7f9761d35000 rw-p 001bf000 08:11 1058702                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libgeos--no-undefined-b94097bf.so
7f9761d35000-7f9761d4b000 r-xp 00000000 08:11 918660                     /lib/x86_64-linux-gnu/libgcc_s.so.1
7f9761d4b000-7f9761f4a000 ---p 00016000 08:11 918660                     /lib/x86_64-linux-gnu/libgcc_s.so.1
7f9761f4a000-7f9761f4b000 rw-p 00015000 08:11 918660                     /lib/x86_64-linux-gnu/libgcc_s.so.1
7f9761f4b000-7f97620bd000 r-xp 00000000 08:11 919473                     /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7f97620bd000-7f97622bd000 ---p 00172000 08:11 919473                     /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7f97622bd000-7f97622c7000 r--p 00172000 08:11 919473                     /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7f97622c7000-7f97622c9000 rw-p 0017c000 08:11 919473                     /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7f97622c9000-7f97622cd000 rw-p 00000000 00:00 0 
7f97622cd000-7f97625bf000 r-xp 00000000 08:11 1058699                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libcurl-ea538880.so.4.4.0
7f97625bf000-7f97627bf000 ---p 002f2000 08:11 1058699                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libcurl-ea538880.so.4.4.0
7f97627bf000-7f97627f6000 rw-p 002f2000 08:11 1058699                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libcurl-ea538880.so.4.4.0
7f97627f6000-7f97627fb000 rw-p 00000000 00:00 0 
7f97627fb000-7f9762846000 rw-p 0032a000 08:11 1058699                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libcurl-ea538880.so.4.4.0
7f9762846000-7f976284d000 r-xp 00000000 08:11 918713                     /lib/x86_64-linux-gnu/librt-2.23.so
7f976284d000-7f9762a4c000 ---p 00007000 08:11 918713                     /lib/x86_64-linux-gnu/librt-2.23.so
7f9762a4c000-7f9762a4d000 r--p 00006000 08:11 918713                     /lib/x86_64-linux-gnu/librt-2.23.so
7f9762a4d000-7f9762a4e000 rw-p 00007000 08:11 918713                     /lib/x86_64-linux-gnu/librt-2.23.so
7f9762a4e000-7f9762a62000 r-xp 00000000 08:11 1058710                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libz-a147dcb0.so.1.2.3
7f9762a62000-7f9762c61000 ---p 00014000 08:11 1058710                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libz-a147dcb0.so.1.2.3
7f9762c61000-7f9762c62000 rw-p 00013000 08:11 1058710                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libz-a147dcb0.so.1.2.3
7f9762c62000-7f9762c63000 rw-p 00015000 08:11 1058710                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libz-a147dcb0.so.1.2.3
7f9762c63000-7f9762ca4000 r-xp 00000000 08:11 1058707                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libpng16-898afbbd.so.16.35.0
7f9762ca4000-7f9762ea3000 ---p 00041000 08:11 1058707                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libpng16-898afbbd.so.16.35.0
7f9762ea3000-7f9762ea8000 rw-p 00040000 08:11 1058707                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libpng16-898afbbd.so.16.35.0
7f9762ea8000-7f9762ef9000 r-xp 00000000 08:11 1058704                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libjpeg-3fe7dfc0.so.9.3.0
7f9762ef9000-7f97630f9000 ---p 00051000 08:11 1058704                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libjpeg-3fe7dfc0.so.9.3.0
7f97630f9000-7f97630fa000 rw-p 00051000 08:11 1058704                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libjpeg-3fe7dfc0.so.9.3.0
7f97630fa000-7f97630fc000 rw-p 00053000 08:11 1058704                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libjpeg-3fe7dfc0.so.9.3.0
7f97630fc000-7f9763123000 r-xp 00000000 08:11 1058700                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libexpat-c4a93fc7.so.1.6.8
7f9763123000-7f9763323000 ---p 00027000 08:11 1058700                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libexpat-c4a93fc7.so.1.6.8
7f9763323000-7f9763325000 rw-p 00027000 08:11 1058700                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libexpat-c4a93fc7.so.1.6.8
7f9763325000-7f9763326000 rw-p 0002a000 08:11 1058700                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libexpat-c4a93fc7.so.1.6.8
7f9763326000-7f9763453000 r-xp 00000000 08:11 1058709                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libsqlite3-25a4bc97.so.0.8.6
7f9763453000-7f9763652000 ---p 0012d000 08:11 1058709                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libsqlite3-25a4bc97.so.0.8.6
7f9763652000-7f9763657000 rw-p 0012c000 08:11 1058709                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libsqlite3-25a4bc97.so.0.8.6
7f9763657000-7f9763658000 rw-p 00000000 00:00 0 
7f9763658000-7f976365a000 rw-p 00132000 08:11 1058709                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libsqlite3-25a4bc97.so.0.8.6
7f976365a000-7f9763695000 r-xp 00000000 08:11 1058703                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libgeos_c-a68605fd.so.1.13.1
7f9763695000-7f9763895000 ---p 0003b000 08:11 1058703                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libgeos_c-a68605fd.so.1.13.1
7f9763895000-7f9763897000 rw-p 0003b000 08:11 1058703                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libgeos_c-a68605fd.so.1.13.1
7f9763897000-7f97638b0000 rw-p 0003e000 08:11 1058703                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libgeos_c-a68605fd.so.1.13.1
7f97638b0000-7f97638bd000 r-xp 00000000 08:11 1058705                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libjson-c-5f02f62c.so.2.0.2
7f97638bd000-7f9763abc000 ---p 0000d000 08:11 1058705                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libjson-c-5f02f62c.so.2.0.2
7f9763abc000-7f9763abd000 rw-p 0000c000 08:11 1058705                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libjson-c-5f02f62c.so.2.0.2
7f9763abd000-7f9763abe000 rw-p 0000e000 08:11 1058705                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libjson-c-5f02f62c.so.2.0.2
7f9763abe000-7f9763b23000 r-xp 00000000 08:11 1058708                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libproj-cd06b982.so.12.0.0
7f9763b23000-7f9763d23000 ---p 00065000 08:11 1058708                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libproj-cd06b982.so.12.0.0
7f9763d23000-7f9763d27000 rw-p 00065000 08:11 1058708                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libproj-cd06b982.so.12.0.0
7f9763d27000-7f9763d2c000 rw-p 0006a000 08:11 1058708                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libproj-cd06b982.so.12.0.0
7f9763d2c000-7f9764d68000 r-xp 00000000 08:11 1058701                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libgdal-0f908958.so.20.5.4
7f9764d68000-7f9764f68000 ---p 0103c000 08:11 1058701                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libgdal-0f908958.so.20.5.4
7f9764f68000-7f9765065000 rw-p 0103c000 08:11 1058701                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libgdal-0f908958.so.20.5.4
7f9765065000-7f976506a000 rw-p 00000000 00:00 0 
7f976506a000-7f9765410000 rw-p 01139000 08:11 1058701                    /usr/local/lib/python3.5/dist-packages/fiona/.libs/libgdal-0f908958.so.20.5.4
7f9765410000-7f976548a000 r-xp 00000000 08:11 1058927                    /usr/local/lib/python3.5/dist-packages/fiona/ogrext.cpython-35m-x86_64-linux-gnu.so
7f976548a000-7f9765689000 ---p 0007a000 08:11 1058927                    /usr/local/lib/python3.5/dist-packages/fiona/ogrext.cpython-35m-x86_64-linux-gnu.so
7f9765689000-7f9765691000 rw-p 00079000 08:11 1058927                    /usr/local/lib/python3.5/dist-packages/fiona/ogrext.cpython-35m-x86_64-linux-gnu.so
7f9765691000-7f9765693000 rw-p 00000000 00:00 0 
7f9765693000-7f9765699000 rw-p 00082000 08:11 1058927                    /usr/local/lib/python3.5/dist-packages/fiona/ogrext.cpython-35m-x86_64-linux-gnu.so
7f9765699000-7f97656d9000 rw-p 00000000 00:00 0 
7f97656d9000-7f97656da000 r-xp 00000000 08:11 1071428                    /usr/lib/python3.5/lib-dynload/_opcode.cpython-35m-x86_64-linux-gnu.so
7f97656da000-7f97658d9000 ---p 00001000 08:11 1071428                    /usr/lib/python3.5/lib-dynload/_opcode.cpython-35m-x86_64-linux-gnu.so
7f97658d9000-7f97658da000 r--p 00000000 08:11 1071428                    /usr/lib/python3.5/lib-dynload/_opcode.cpython-35m-x86_64-linux-gnu.so
7f97658da000-7f97658db000 rw-p 00001000 08:11 1071428                    /usr/lib/python3.5/lib-dynload/_opcode.cpython-35m-x86_64-linux-gnu.so
7f97658db000-7f976599b000 rw-p 00000000 00:00 0 
7f97659bc000-7f9765afc000 rw-p 00000000 00:00 0 
7f9765b2d000-7f9765c6d000 rw-p 00000000 00:00 0 
7f9765c6d000-7f9765d75000 r-xp 00000000 08:11 918671                     /lib/x86_64-linux-gnu/libm-2.23.so
7f9765d75000-7f9765f74000 ---p 00108000 08:11 918671                     /lib/x86_64-linux-gnu/libm-2.23.so
7f9765f74000-7f9765f75000 r--p 00107000 08:11 918671                     /lib/x86_64-linux-gnu/libm-2.23.so
7f9765f75000-7f9765f76000 rw-p 00108000 08:11 918671                     /lib/x86_64-linux-gnu/libm-2.23.so
7f9765f76000-7f9765f8f000 r-xp 00000000 08:11 918738                     /lib/x86_64-linux-gnu/libz.so.1.2.8
7f9765f8f000-7f976618e000 ---p 00019000 08:11 918738                     /lib/x86_64-linux-gnu/libz.so.1.2.8
7f976618e000-7f976618f000 r--p 00018000 08:11 918738                     /lib/x86_64-linux-gnu/libz.so.1.2.8
7f976618f000-7f9766190000 rw-p 00019000 08:11 918738                     /lib/x86_64-linux-gnu/libz.so.1.2.8
7f9766190000-7f97661b6000 r-xp 00000000 08:11 336102                     /lib/x86_64-linux-gnu/libexpat.so.1.6.0
7f97661b6000-7f97663b6000 ---p 00026000 08:11 336102                     /lib/x86_64-linux-gnu/libexpat.so.1.6.0
7f97663b6000-7f97663b8000 r--p 00026000 08:11 336102                     /lib/x86_64-linux-gnu/libexpat.so.1.6.0
7f97663b8000-7f97663b9000 rw-p 00028000 08:11 336102                     /lib/x86_64-linux-gnu/libexpat.so.1.6.0
7f97663b9000-7f97663bb000 r-xp 00000000 08:11 918733                     /lib/x86_64-linux-gnu/libutil-2.23.so
7f97663bb000-7f97665ba000 ---p 00002000 08:11 918733                     /lib/x86_64-linux-gnu/libutil-2.23.so
7f97665ba000-7f97665bb000 r--p 00001000 08:11 918733                     /lib/x86_64-linux-gnu/libutil-2.23.so
7f97665bb000-7f97665bc000 rw-p 00002000 08:11 918733                     /lib/x86_64-linux-gnu/libutil-2.23.so
7f97665bc000-7f97665bf000 r-xp 00000000 08:11 918652                     /lib/x86_64-linux-gnu/libdl-2.23.so
7f97665bf000-7f97667be000 ---p 00003000 08:11 918652                     /lib/x86_64-linux-gnu/libdl-2.23.so
7f97667be000-7f97667bf000 r--p 00002000 08:11 918652                     /lib/x86_64-linux-gnu/libdl-2.23.so
7f97667bf000-7f97667c0000 rw-p 00003000 08:11 918652                     /lib/x86_64-linux-gnu/libdl-2.23.so
7f97667c0000-7f9766980000 r-xp 00000000 08:11 918639                     /lib/x86_64-linux-gnu/libc-2.23.so
7f9766980000-7f9766b80000 ---p 001c0000 08:11 918639                     /lib/x86_64-linux-gnu/libc-2.23.so
7f9766b80000-7f9766b84000 r--p 001c0000 08:11 918639                     /lib/x86_64-linux-gnu/libc-2.23.so
7f9766b84000-7f9766b86000 rw-p 001c4000 08:11 918639                     /lib/x86_64-linux-gnu/libc-2.23.so
7f9766b86000-7f9766b8a000 rw-p 00000000 00:00 0 
7f9766b8a000-7f9766ba2000 r-xp 00000000 08:11 918707                     /lib/x86_64-linux-gnu/libpthread-2.23.so
7f9766ba2000-7f9766da1000 ---p 00018000 08:11 918707                     /lib/x86_64-linux-gnu/libpthread-2.23.so
7f9766da1000-7f9766da2000 r--p 00017000 08:11 918707                     /lib/x86_64-linux-gnu/libpthread-2.23.so
7f9766da2000-7f9766da3000 rw-p 00018000 08:11 918707                     /lib/x86_64-linux-gnu/libpthread-2.23.so
7f9766da3000-7f9766da7000 rw-p 00000000 00:00 0 
7f9766da7000-7f9766dcd000 r-xp 00000000 08:11 918619                     /lib/x86_64-linux-gnu/ld-2.23.so
7f9766dda000-7f9766ddb000 rw-p 00000000 00:00 0 
7f9766ddb000-7f9766ddc000 rwxp 00000000 00:00 0 
7f9766ddc000-7f9766e1c000 rw-p 00000000 00:00 0 
7f9766e1c000-7f9766e43000 r--p 00000000 08:11 919136                     /usr/lib/locale/C.UTF-8/LC_CTYPE
7f9766e43000-7f9766e44000 r--p 00000000 08:11 919142                     /usr/lib/locale/C.UTF-8/LC_NUMERIC
7f9766e44000-7f9766e45000 r--p 00000000 08:11 919145                     /usr/lib/locale/C.UTF-8/LC_TIME
7f9766e45000-7f9766fb7000 r--p 00000000 08:11 919135                     /usr/lib/locale/C.UTF-8/LC_COLLATE
7f9766fb7000-7f9766fb8000 r--p 00000000 08:11 919140                     /usr/lib/locale/C.UTF-8/LC_MONETARY
7f9766fb8000-7f9766fb9000 r--p 00000000 08:11 919139                     /usr/lib/locale/C.UTF-8/LC_MESSAGES/SYS_LC_MESSAGES
7f9766fb9000-7f9766fba000 r--p 00000000 08:11 919143                     /usr/lib/locale/C.UTF-8/LC_PAPER
7f9766fba000-7f9766fbb000 r--p 00000000 08:11 919141                     /usr/lib/locale/C.UTF-8/LC_NAME
7f9766fbb000-7f9766fc2000 r--s 00000000 08:11 919441                     /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
7f9766fc2000-7f9766fc8000 rw-p 00000000 00:00 0 
7f9766fc8000-7f9766fc9000 r--p 00000000 08:11 919134                     /usr/lib/locale/C.UTF-8/LC_ADDRESS
7f9766fc9000-7f9766fca000 r--p 00000000 08:11 919144                     /usr/lib/locale/C.UTF-8/LC_TELEPHONE
7f9766fca000-7f9766fcb000 r--p 00000000 08:11 919138                     /usr/lib/locale/C.UTF-8/LC_MEASUREMENT
7f9766fcb000-7f9766fcc000 r--p 00000000 08:11 919137                     /usr/lib/locale/C.UTF-8/LC_IDENTIFICATION
7f9766fcc000-7f9766fcd000 r--p 00025000 08:11 918619                     /lib/x86_64-linux-gnu/ld-2.23.so
7f9766fcd000-7f9766fce000 rw-p 00026000 08:11 918619                     /lib/x86_64-linux-gnu/ld-2.23.so
7f9766fce000-7f9766fcf000 rw-p 00000000 00:00 0 
7fff2e3a4000-7fff2e3c5000 rw-p 00000000 00:00 0                          [stack]
7fff2e3c7000-7fff2e3ca000 r--p 00000000 00:00 0                          [vvar]
7fff2e3ca000-7fff2e3cc000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
Aborted (core dumped)

There are a few conditions needed for the issue to pop up:

  • Only occurs when fiona is imported before rasterio, the other way around or not importing fiona does not seem to lead to the error
  • Multihreading is needed
  • Only occurs for very large images that are (almost) completely white. I have not been able to reproduce it with "regular" images
  • Only occurs in certain environments, even holding the rasterio and fiona version constant. E.g. does not occur on my ubuntu 18.04. (See docker image below)

Steps to reproduce the problem.

I can reproduce the problem about 80% of the time with the following script:

import fiona
import rasterio as rio
from multiprocessing.pool import ThreadPool as Pool

def read(file):
    with rio.open(file, sharing=False) as src:
        print("starting to read", flush=True)
        src.read(window=((0, 5000), (0, 5000)))
        print("done reading", flush=True)

failing = "/vsicurl/https://storage.googleapis.com/temporary_eu_west_4/mostly_white.tif"

pool = Pool(4)
pool.map(read, [failing]*4)
pool.close()
pool.join()

Using the following docker image:

FROM ubuntu:16.04

ENV CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
ENV LC_ALL=C.UTF-8
ENV LANG=C.UTF-8

RUN apt-get update -y && apt-get install -y python3-pip 

RUN pip3 install fiona==1.8.13.post1 rasterio==1.1.3

Built image available here: mengelhard/rasterio_issue:latest

Rasterio version and provenance

rasterio-1.1.3-cp35-cp35m-manylinux1_x86_64.whl
Fiona-1.8.13.post1-cp35-cp35m-manylinux1_x86_64.whl

We had the same issue with raterio 1.1.2, but the above script does not seem to be able to reproduce it in this case.

@sgillies
Copy link
Member

@mihi314 sorry about the trouble and thank you for the traceback. I've found a few other issues and discussions that look related, like openssl/openssl#2809, and am digging into them.

Fiona 1.8.13.post1 and rasterio 1.1.3 introduced GDAL 2.4.4 in their wheels. There is a small chance this is a GDAL bug and I will look into that as well.

@sgillies sgillies added the bug label Feb 26, 2020
@mihi314
Copy link
Author

mihi314 commented Feb 27, 2020

Thanks for looking into this!

I've tried some more things and noticed that the reading part is not strictly necessary. The error also occurs when just opening the file, without reading anything. Also with non-white images. Although much less reliably. So it might be somewhat related to OSGeo/gdal#1244 after all?

@sgillies
Copy link
Member

@mihi314 thanks for providing the program. I've been able to trigger the double free or corruption (!prev) error on my thinkpad (ubuntu 18.04) and rasterio 1.1.3 and fiona 1.8.13.post1 wheels from PyPI.

And I have another data point. After getting the crash, I edited the program to comment out the import of fiona, ran it again and see a thread-related GDAL error.

CPLReleaseMutex: Error = 1 (Operation not permitted)
starting to read
starting to read
starting to read
starting to read
done reading
done reading
done reading
done reading

@sgillies
Copy link
Member

I've updated the test program so that we're using the latest and greatest Python modules.

from concurrent.futures import ThreadPoolExecutor

import fiona
import rasterio


def read(file):
    with rasterio.open(file, sharing=False) as src:
        print("starting to read", flush=True)
        src.read(window=rasterio.windows.Window(0, 0, 5000, 5000))
        print("done reading", flush=True)

failing = "/vsicurl/https://storage.googleapis.com/temporary_eu_west_4/mostly_white.tif"

with ThreadPoolExecutor(4) as executor:
    executor.map(read, [failing]*4)

This will produce the crash with rasterio 1.1.3 and fiona 1.8.13.post1.

If I downgrade fiona to 1.8.13, which has GDAL 2.4.3, I cannot produce the crash. This seems to be a clue that there is a bug related to GDAL 2.4.4.

@sgillies
Copy link
Member

sgillies commented Feb 27, 2020

I downgraded to rasterio 1.1.2, which also has GDAL 2.4.3, and can produce the crash. It's not specific to GDAL 2.4.4. Looks to me like a function from fiona's copy of libgdal or libcurl is being called unexpectedly and results in some operation on uninitialized data. I guess when different versions of GDAL are in play this does not happen (waves hands).

I cannot produce the crash with a single worker thread (1 instead of 4 in the executor).

@sgillies
Copy link
Member

Here's the backtrace I'm looking at. A function in rasterio's libgdal calls a function in fiona's libcurl (we're starting to go off the rails right there), which then eventually calls a function in rasterio's libgdal (a curl callback maybe?). And... splat.

#0  0x00007ffff3e0993d in lh_retrieve () from /home/sean/.virtualenvs/sat/lib/python3.6/site-packages/fiona/.libs/libgdal-067e2e5e.so.20.5.3
#1  0x00007ffff3dcf81d in ?? () from /home/sean/.virtualenvs/sat/lib/python3.6/site-packages/fiona/.libs/libgdal-067e2e5e.so.20.5.3
#2  0x00007ffff3dd060c in ERR_get_state () from /home/sean/.virtualenvs/sat/lib/python3.6/site-packages/fiona/.libs/libgdal-067e2e5e.so.20.5.3
#3  0x00007ffff3dd0a5f in ERR_clear_error () from /home/sean/.virtualenvs/sat/lib/python3.6/site-packages/fiona/.libs/libgdal-067e2e5e.so.20.5.3
#4  0x00007ffff1884a73 in ?? () from /home/sean/.virtualenvs/sat/lib/python3.6/site-packages/fiona/.libs/./libcurl-ed5c192c.so.4.4.0
#5  0x00007ffff1849782 in ?? () from /home/sean/.virtualenvs/sat/lib/python3.6/site-packages/fiona/.libs/./libcurl-ed5c192c.so.4.4.0
#6  0x00007ffff1845c8e in ?? () from /home/sean/.virtualenvs/sat/lib/python3.6/site-packages/fiona/.libs/./libcurl-ed5c192c.so.4.4.0
#7  0x00007ffff184740d in ?? () from /home/sean/.virtualenvs/sat/lib/python3.6/site-packages/fiona/.libs/./libcurl-ed5c192c.so.4.4.0
#8  0x00007ffff18686a6 in ?? () from /home/sean/.virtualenvs/sat/lib/python3.6/site-packages/fiona/.libs/./libcurl-ed5c192c.so.4.4.0
#9  0x00007ffff18690b1 in curl_multi_perform () from /home/sean/.virtualenvs/sat/lib/python3.6/site-packages/fiona/.libs/./libcurl-ed5c192c.so.4.4.0
#10 0x00007fffee66a9ab in ?? () from /home/sean/.virtualenvs/sat/lib/python3.6/site-packages/rasterio/.libs/libgdal-4653656c.so.20.5.3
#11 0x00007fffee67477a in ?? () from /home/sean/.virtualenvs/sat/lib/python3.6/site-packages/rasterio/.libs/libgdal-4653656c.so.20.5.3
#12 0x00007fffee66d2d0 in ?? () from /home/sean/.virtualenvs/sat/lib/python3.6/site-packages/rasterio/.libs/libgdal-4653656c.so.20.5.3
#13 0x00007fffee290a81 in GDALOpenInfo::GDALOpenInfo(char const*, int, char const* const*) () from /home/sean/.virtualenvs/sat/lib/python3.6/site-packages/rasterio/.libs/libgdal-4653656c.so.20.5.3
#14 0x00007fffee26bc27 in GDALOpenEx () from /home/sean/.virtualenvs/sat/lib/python3.6/site-packages/rasterio/.libs/libgdal-4653656c.so.20.5.3
#15 0x00007fffe8bec541 in ?? () from /home/sean/.virtualenvs/sat/lib/python3.6/site-packages/rasterio/_shim.cpython-36m-x86_64-linux-gnu.so
#16 0x00007fffef39f08e in ?? () from /home/sean/.virtualenvs/sat/lib/python3.6/site-packages/rasterio/_base.cpython-36m-x86_64-linux-gnu.so
...

@sgillies
Copy link
Member

I'm unable to reproduce the crash on my macbook using rasterio 1.1.3 and fiona 1.8.13.post1 wheels (GDAL 2.4.4). Looks like the differences between curl and openssl in the wheels are important.

@mihi314
Copy link
Author

mihi314 commented Mar 4, 2020

Yes, seems to have something to do which the shared libraries that get loaded.

I tried comparing the combination rasterio==1.1.3 and fiona==1.8.13.post1 with rasterio==1.1.3 and fiona==1.8.13. The first case is the failing one, the other one works. When looking at the relevant opened libraries with strace, I see the following difference:

rasterio==1.1.3, fiona==1.8.13.post1:

fiona/.libs/libgdal-0f908958.so.20.5.4
fiona/.libs/./libgeos_c-a68605fd.so.1.13.1
fiona/.libs/./libcurl-ea538880.so.4.4.0
fiona/.libs/././libgeos--no-undefined-b94097bf.so
rasterio/.libs/libgdal-63d0ced7.so.20.5.4

rasterio==1.1.3 and fiona==1.8.13:

fiona/.libs/libgdal-067e2e5e.so.20.5.3
fiona/.libs/./libgeos_c-1aedf783.so.1.10.2
fiona/.libs/./libcurl-ed5c192c.so.4.4.0
fiona/.libs/././libgeos-3-9b41901c.6.2.so
rasterio/.libs/libgdal-63d0ced7.so.20.5.4
rasterio/.libs/./libgeos_c-a68605fd.so.1.13.1
rasterio/.libs/./libcurl-ea538880.so.4.4.0
rasterio/.libs/././libgeos--no-undefined-b94097bf.so

I.e. in the working case, fiona and rasterio both load their own version of libcurl and libgeos. In the failing case however only the fiona versions get loaded. Possibly because these were already loaded by fiona, as the rasterio==1.1.3 wheels also ship with libcurl-ed5c192c.so.4.4.0, just like fiona.

Exactly why this should lead to the crashes however I have no clue.

@sgillies
Copy link
Member

sgillies commented Mar 7, 2020

@mihi314 thank you for that update. I am not sure why we have libcurl-ed5c192c.so.4.4.0 in the fiona 1.8.13 wheel and libcurl-ea538880.so.4.4.0 in the rasterio 1.1.3 wheel, I thought I was compiling curl the same way in each wheel builder, I'll look into that. I'm slightly optimistic that making sure the libs have unique hashes might help a lot.

@sgillies
Copy link
Member

sgillies commented May 6, 2020

I'm happy to say that I can't reproduce the segfault using rasterio 1.1.4.dev0 wheels built by rasterio/rasterio-wheels#47 and fiona 1.8.13.post1. I still do see a printed warning about a mutex that I mentioned in OSGeo/gdal#2278, but it doesn't halt the program.

@sgillies
Copy link
Member

sgillies commented May 6, 2020

In conclusion, this is not a rasterio or GDAL bug, but a problem with shared library SONAMEs that I'm solving in rasterio/rasterio-wheels#44.

@mihi314
Copy link
Author

mihi314 commented May 17, 2020

Thank you very much :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants