Code Monkey home page Code Monkey logo

Comments (8)

ahupp avatar ahupp commented on May 22, 2024

Hi, sorry for the delayed response. I'm not entirely sure what's going on. It's extremely odd that you see all instances die at once, I can't think of a way that would happen.

One possibility is that somehow magic_close() is being called on self.cookie and then that cookie is re-used. I don't see how that could happen. I did add some defensive checks here:

4142c79

If you use a current version of the wrapper does the problem still occur?

Another option (unlikely) is some bug in file_vprintf. I've traced through the logic there and am somewhat confident it won't double free ms->o.buf, but it's hard to be sure.

Now, I believe the GIL is held during all these calls. If it is not held then that's a whole different problem.

from python-magic.

ahupp avatar ahupp commented on May 22, 2024

I'm going to optimistically assume that this is resolved, if not please re-open.

from python-magic.

devendralaulkar avatar devendralaulkar commented on May 22, 2024

I am facing a similar issue. We are using python-jira library, which depends upon python-magic==0.4.2
Running under Django 1.4.2 Ubuntu 12.04 64 bit - After making a call from jira python, the Django server segfaults.

*** glibc detected *** python: free(): invalid pointer: 0xb612be98 ***
======= Backtrace: =========
/lib/i386-linux-gnu/tls/i686/nosegneg/libc.so.6(+0x75ee2)[0xb73d3ee2]
/usr/lib/libmagic.so.1(magic_close+0x4a)[0xb3409f8a]
/usr/lib/python2.7/lib-dynload/_ctypes.so(ffi_call_SYSV+0x1a)[0xb707e70a]
/usr/lib/python2.7/lib-dynload/_ctypes.so(ffi_call+0x6f)[0xb707e43f]
/usr/lib/python2.7/lib-dynload/_ctypes.so(_ctypes_callproc+0x7d0)[0xb706e830]
/usr/lib/python2.7/lib-dynload/_ctypes.so(+0x8ca6)[0xb706eca6]
python(PyObject_Call+0x3f)[0x81287ef]
python(PyEval_EvalFrameEx+0xab6)[0x81951e6]
python(PyEval_EvalCodeEx+0x150)[0x819af70]
python[0x819c82e]
python(PyObject_Call+0x3f)[0x81287ef]
python[0x80d8e37]
python(PyObject_Call+0x3f)[0x81287ef]
python(PyEval_CallObjectWithKeywords+0x39)[0x8128c59]
python[0x80d9268]
python(PyDict_Clear+0x1e2)[0x8175f52]
python[0x817601f]
python[0x8157b11]
python(_PyObject_GC_Malloc+0xe5)[0x8158075]
python(PyType_GenericAlloc+0x3e)[0x812a75e]
python[0x812c629]
python[0x80ef5ba]
python(PyObject_Call+0x3f)[0x81287ef]
python(PyEval_CallObjectWithKeywords+0x39)[0x8128c59]
python(PyErr_NormalizeException+0xb1)[0x80d8521]
python(PyEval_EvalFrameEx+0x390b)[0x819803b]
python(PyEval_EvalFrameEx+0x7bc)[0x8194eec]
python(PyEval_EvalCodeEx+0x150)[0x819af70]
python(PyEval_EvalFrameEx+0x6cc)[0x8194dfc]
python(PyEval_EvalFrameEx+0x7bc)[0x8194eec]
python(PyEval_EvalCodeEx+0x150)[0x819af70]
python(PyEval_EvalFrameEx+0x6cc)[0x8194dfc]
python(PyEval_EvalCodeEx+0x150)[0x819af70]
python(PyEval_EvalFrameEx+0x6cc)[0x8194dfc]
python(PyEval_EvalCodeEx+0x150)[0x819af70]
python(PyEval_EvalFrameEx+0x6cc)[0x8194dfc]
python(PyEval_EvalFrameEx+0x7bc)[0x8194eec]
python(PyEval_EvalCodeEx+0x150)[0x819af70]
python(PyEval_EvalFrameEx+0x6cc)[0x8194dfc]
python(PyEval_EvalCodeEx+0x150)[0x819af70]
python(PyEval_EvalFrameEx+0x6cc)[0x8194dfc]
python(PyEval_EvalCodeEx+0x150)[0x819af70]
python(PyEval_EvalFrameEx+0x6cc)[0x8194dfc]
python(PyEval_EvalCodeEx+0x150)[0x819af70]
python(PyEval_EvalFrameEx+0x6cc)[0x8194dfc]
python(PyEval_EvalCodeEx+0x150)[0x819af70]
python[0x819c972]
python(PyObject_Call+0x3f)[0x81287ef]
python(PyEval_EvalFrameEx+0x1d8b)[0x81964bb]
python(PyEval_EvalCodeEx+0x150)[0x819af70]
python[0x819c82e]
python(PyObject_Call+0x3f)[0x81287ef]
python(PyObject_CallFunctionObjArgs+0x6b)[0x815825b]
python[0x8159359]
python(_PyObject_GenericGetAttrWithDict+0x157)[0x80f15c7]
python(PyObject_GetAttr+0x47)[0x80f1797]
python(PyEval_EvalFrameEx+0x1b2)[0x81948e2]
python(PyEval_EvalFrameEx+0x7bc)[0x8194eec]
python(PyEval_EvalCodeEx+0x150)[0x819af70]
python(PyEval_EvalFrameEx+0x6cc)[0x8194dfc]
python(PyEval_EvalCodeEx+0x150)[0x819af70]
python(PyEval_EvalFrameEx+0x6cc)[0x8194dfc]
python(PyEval_EvalCodeEx+0x150)[0x819af70]
======= Memory map: ========
08048000-0829e000 r-xp 00000000 ca:01 739 /usr/bin/python2.7
0829e000-0829f000 r--p 00256000 ca:01 739 /usr/bin/python2.7
0829f000-082f4000 rw-p 00257000 ca:01 739 /usr/bin/python2.7
082f4000-08300000 rw-p 00000000 00:00 0
0970e000-0a8a3000 rw-p 00000000 00:00 0 [heap]
b26ff000-b2700000 rw-p 00000000 00:00 0
b2700000-b2821000 rw-p 00000000 00:00 0
b2821000-b2900000 ---p 00000000 00:00 0
b2900000-b29f4000 rw-p 00000000 00:00 0
b29f4000-b2a00000 ---p 00000000 00:00 0
b2af2000-b2af7000 r-xp 00000000 ca:01 393658 /lib/i386-linux-gnu/tls/i686/nosegneg/libnss_dns-2.15.so
b2af7000-b2af8000 r--p 00004000 ca:01 393658 /lib/i386-linux-gnu/tls/i686/nosegneg/libnss_dns-2.15.so
b2af8000-b2af9000 rw-p 00005000 ca:01 393658 /lib/i386-linux-gnu/tls/i686/nosegneg/libnss_dns-2.15.so
b2b00000-b2c00000 rw-p 00000000 00:00 0
b2cf3000-b2cfe000 r-xp 00000000 ca:01 7619 /usr/lib/python2.7/lib-dynload/_elementtree.so
b2cfe000-b2cff000 r--p 0000a000 ca:01 7619 /usr/lib/python2.7/lib-dynload/_elementtree.so
b2cff000-b2d00000 rw-p 0000b000 ca:01 7619 /usr/lib/python2.7/lib-dynload/_elementtree.so
b2d00000-b2dc5000 rw-p 00000000 00:00 0
b2dc5000-b2e00000 ---p 00000000 00:00 0
b2f00000-b30f1000 rw-p 00000000 00:00 0
b30f1000-b3100000 ---p 00000000 00:00 0
b3100000-b31fe000 rw-p 00000000 00:00 0
b31fe000-b3200000 ---p 00000000 00:00 0
b32f8000-b32fd000 r-xp 00000000 ca:01 7614 /usr/lib/python2.7/lib-dynload/_csv.so
b32fd000-b32fe000 r--p 00004000 ca:01 7614 /usr/lib/python2.7/lib-dynload/_csv.so
b32fe000-b3300000 rw-p 00005000 ca:01 7614 /usr/lib/python2.7/lib-dynload/_csv.so
b3300000-b33d1000 rw-p 00000000 00:00 0
b33d1000-b3400000 ---p 00000000 00:00 0
b3405000-b3420000 r-xp 00000000 ca:01 1144 /usr/lib/libmagic.so.1.0.0
b3420000-b3421000 r--p 0001a000 ca:01 1144 /usr/lib/libmagic.so.1.0.0
b3421000-b3422000 rw-p 0001b000 ca:01 1144 /usr/lib/libmagic.so.1.0.0
b3429000-b342e000 r-xp 00000000 ca:01 1548 /usr/lib/i386-linux-gnu/libgdbm.so.3.0.0
b342e000-b342f000 r--p 00004000 ca:01 1548 /usr/lib/i386-linux-gnu/libgdbm.so.3.0.0
b342f000-b3430000 rw-p 00005000 ca:01 1548 /usr/lib/i386-linux-gnu/libgdbm.so.3.0.0
b3433000-b3435000 r-xp 00000000 ca:01 7633 /usr/lib/python2.7/lib-dynload/dbm.so
b3435000-b3436000 r--p 00002000 ca:01 7633 /usr/lib/python2.7/lib-dynload/dbm.so
b3436000-b3437000 rw-p 00003000 ca:01 7633 /usr/lib/python2.7/lib-dynload/dbm.so
b3437000-b35b9000 r-xp 00000000 ca:01 1535 /usr/lib/i386-linux-gnu/libdb-5.1.so
b35b9000-b35ba000 ---p 00182000 ca:01 1535 /usr/lib/i386-linux-gnu/libdb-5.1.so
b35ba000-b35be000 r--p 00182000 ca:01 1535 /usr/lib/i386-linux-gnu/libdb-5.1.so
b35be000-b35bf000 rw-p 00186000 ca:01 1535 /usr/lib/i386-linux-gnu/libdb-5.1.so
b35bf000-b35ec000 r-xp 00000000 ca:01 7607 /usr/lib/python2.7/lib-dynload/_bsddb.so
b35ec000-b35ed000 r--p 0002c000 ca:01 7607 /usr/lib/python2.7/lib-dynload/_bsddb.so
b35ed000-b35ef000 rw-p 0002d000 ca:01 7607 /usr/lib/python2.7/lib-dynload/_bsddb.so
b35ef000-b35f0000 rw-p 00000000 00:00 0
b35f0000-b35fe000 r-xp 00000000 ca:01 3856 /usr/lib/python2.7/dist-packages/Crypto/Cipher/DES3.so
b35fe000-b35ff000 r--p 0000d000 ca:01 3856 /usr/lib/python2.7/dist-packages/Crypto/Cipher/DES3.so
b35ff000-b3600000 rw-p 0000e000 ca:01 3856 /usr/lib/python2.7/dist-packages/Crypto/Cipher/DES3.so
b3600000-b37d0000 rw-p 00000000 00:00 0
b37d0000-b3800000 ---p 00000000 00:00 0
b3800000-b3900000 rw-p 00000000 00:00 0
b3906000-b397d000 r-xp 00000000 ca:01 1552 /usr/lib/i386-linux-gnu/libgmp.so.10.0.2
b397d000-b397e000 r--p 00076000 ca:01 1552 /usr/lib/i386-linux-gnu/libgmp.so.10.0.2
b397e000-b3985000 rw-p 00077000 ca:01 1552 /usr/lib/i386-linux-gnu/libgmp.so.10.0.2
b3985000-b3995000 r-xp 00000000 ca:01 3916 /usr/lib/python2.7/dist-packages/Crypto/PublicKey/_fastmath.so
b3995000-b3996000 r--p 0000f000 ca:01 3916 /usr/lib/python2.7/dist-packages/Crypto/PublicKey/_fastmath.so
b3996000-b3997000 rw-p 00010000 ca:01 3916 /usr/lib/python2.7/dist-packages/Crypto/PublicKey/_fastmath.so
b3997000-b39f6000 r-xp 00000000 ca:01 4217 /usr/lib/python2.7/dist-packages/M2Crypto/__m2crypto.so
b39f6000-b39f7000 r--p 0005e000 ca:01 4217 /usr/lib/python2.7/dist-packages/M2Crypto/__m2crypto.so
b39f7000-b39fb000 rw-p 0005f000 ca:01 4217 /usr/lib/python2.7/dist-packages/M2Crypto/__m2crypto.so
b39fb000-b39fc000 rw-p 00000000 00:00 0
b39fc000-b39fd000 ---p 00000000 00:00 0
b39fd000-b41fd000 rw-p 00000000 00:00 0
b41fd000-b41fe000 ---p 00000000 00:00 0
b41fe000-b49fe000 rw-p 00000000 00:00 0
b49fe000-b49ff000 ---p 00000000 00:00 0
b49ff000-b51ff000 rw-p 00000000 00:00 0
b51ff000-b5200000 ---p 00000000 00:00 0
b5200000-b5a00000 rw-p 00000000 00:00 0
b5a00000-b5aea000 rw-p 00000000 00:00 0
b5aea000-b5b00000 ---p 00000000 00:00 0
b5b02000-b5b05000 r-xp 00000000 ca:01 7637 /usr/lib/python2.7/lib-dynload/gdbm.so
b5b05000-b5b06000 r--p 00002000 ca:01 7637 /usr/lib/python2.7/lib-dynload/gdbm.so
b5b06000-b5b07000 rw-p 00003000 ca:01 7637 /usr/lib/python2.7/lib-dynload/gdbm.so
b5b07000-b5b09000 r-xp 00000000 ca:01 3852 /usr/lib/python2.7/dist-packages/Crypto/Cipher/ARC4.so
b5b09000-b5b0a000 r--p 00001000 ca:01 3852 /usr/lib/python2.7/dist-packages/Crypto/Cipher/ARC4.so
b5b0a000-b5b0b000 rw-p 00002000 ca:01 3852 /usr/lib/python2.7/dist-packages/Crypto/Cipher/ARC4.so
b5b0b000-b5b0e000 r-xp 00000000 ca:01 4067 /usr/lib/python2.7/dist-packages/Crypto/Util/_counter.so
b5b0e000-b5b0f000 r--p 00002000 ca:01 4067 /usr/lib/python2.7/dist-packages/Crypto/Util/_counter.so
b5b0f000-b5b10000 rw-p 00003000 ca:01 4067 /usr/lib/python2.7/dist-packages/Crypto/Util/_counter.so
b5b10000-b5b18000 r-xp 00000000 ca:01 3825 /usr/lib/python2.7/dist-packages/Crypto/Cipher/AES.so
b5b18000-b5b19000 r--p 00007000 ca:01 3825 /usr/lib/python2.7/dist-packages/Crypto/Cipher/AES.so
b5b19000-b5b1a000 rw-p 00008000 ca:01 3825 /usr/lib/python2.7/dist-packages/Crypto/Cipher/AES.so
b5b1a000-b5b40000 r-xp 00000000 ca:01 394376 /lib/i386-linux-gnu/libexpat.so.1.5.2
b5b40000-b5b41000 ---p 00026000 ca:01 394376 /lib/i386-linux-gnu/libexpat.so.1.5.2
b5b41000-b5b43000 r--p 00026000 ca:01 394376 /lib/i386-linux-gnu/libexpat.so.1.5.2
b5b43000-b5b44000 rw-p 00028000 ca:01 394376 /lib/i386-linux-gnu/libexpat.so.1.5.2
b5b44000-b5b4f000 r-xp 00000000 ca:01 7644 /usr/lib/python2.7/lib-dynload/pyexpat.so
b5b4f000-b5b50000 r--p 0000b000 ca:01 7644 /usr/lib/python2.7/lib-dynload/pyexpat.so
b5b50000-b5b51000 rw-p 0000c000 ca:01 7644 /usr/lib/python2.7/lib-dynload/pyexpat.so
b5b51000-b5b52000 rw-p 00000000 00:00 0
b5b52000-b5b97000 r-xp 00000000 ca:01 16944 /usr/lib/i386-linux-gnu/libjpeg.so.8.0.2
b5b97000-b5b98000 r--p 00044000 ca:01 16944 /usr/lib/i386-linux-gnu/libjpeg.so.8.0.2
b5b98000-b5b99000 rw-p 00045000 ca:01 16944 /usr/lib/i386-linux-gnu/libjpeg.so.8.0.2
b5b99000-b5ba9000 rw-p 00000000 00:00 0
b5ba9000-b5be5000 r-xp 00000000 ca:01 17246 /usr/lib/python2.7/dist-packages/PIL/_imaging.so
b5be5000-b5be7000 r--p 0003b000 ca:01 17246 /usr/lib/python2.7/dist-packages/PIL/_imaging.so
b5be7000-b5be9000 rw-p 0003d000 ca:01 17246 /usr/lib/python2.7/dist-packages/PIL/_imaging.so./debug.sh: line 5: 13233 Aborted (core dumped) pytho

from python-magic.

thesteed avatar thesteed commented on May 22, 2024

I too am facing this double free corruption error, I am also using this in a multi-threaded environment. If there is any more information I can provide to help, let me know!

    mime_type = magic.from_file(file_path, mime=True)
    if not mime_type:
        mime_type = 'unknown'

*** glibc detected *** python: double free or corruption (fasttop): 0xb220a738 ***
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x75ee2)[0xb758dee2]
/usr/lib/i386-linux-gnu/libmagic.so.1(file_reset+0x45)[0xb6753275]
/usr/lib/i386-linux-gnu/libmagic.so.1(+0x3091)[0xb6746091]
/usr/lib/python2.7/lib-dynload/_ctypes.so(ffi_call_SYSV+0x1a)[0xb6788a5e]
/usr/lib/python2.7/lib-dynload/_ctypes.so(ffi_call+0x6f)[0xb67887bf]
/usr/lib/python2.7/lib-dynload/_ctypes.so(_ctypes_callproc+0x7a0)[0xb677d320]
/usr/lib/python2.7/lib-dynload/_ctypes.so(+0xc7be)[0xb677d7be]
python(PyEval_EvalFrameEx+0xd25)[0x80a0c65]
python(PyEval_EvalFrameEx+0x9b8)[0x80a08f8]
python(PyEval_EvalCodeEx+0x149)[0x80a6c99]
python(PyEval_EvalFrameEx+0xa5d)[0x80a099d]
python(PyEval_EvalCodeEx+0x149)[0x80a6c99]
python(PyEval_EvalFrameEx+0xa5d)[0x80a099d]
python(PyEval_EvalCodeEx+0x149)[0x80a6c99]
python(PyEval_EvalFrameEx+0xa5d)[0x80a099d]
python(PyEval_EvalFrameEx+0x9b8)[0x80a08f8]
python(PyEval_EvalFrameEx+0x9b8)[0x80a08f8]
python(PyEval_EvalFrameEx+0x9b8)[0x80a08f8]
python(PyEval_EvalFrameEx+0x9b8)[0x80a08f8]
python(PyEval_EvalCodeEx+0x149)[0x80a6c99]
python[0x80e23ae]
python[0x80fe8d9]
python(PyEval_CallObjectWithKeywords+0x75)[0x80dd625]
python[0x81104a3]
/lib/i386-linux-gnu/libpthread.so.0(+0x6d4c)[0xb76ebd4c]
/lib/i386-linux-gnu/libc.so.6(clone+0x5e)[0xb7606d3e]
======= Memory map: ========
08048000-0825a000 r-xp 00000000 08:01 81789905 /usr/bin/python2.7
0825a000-0825b000 r--p 00211000 08:01 81789905 /usr/bin/python2.7
0825b000-082b0000 rw-p 00212000 08:01 81789905 /usr/bin/python2.7
082b0000-082bd000 rw-p 00000000 00:00 0
0934b000-0a0f5000 rw-p 00000000 00:00 0 [heap]
9fdbe000-9fdbf000 ---p 00000000 00:00 0
9fdbf000-a05bf000 rw-p 00000000 00:00 0
a1dc2000-a1dc3000 ---p 00000000 00:00 0
a1dc3000-a25c3000 rw-p 00000000 00:00 0
a2dc4000-a2dc5000 ---p 00000000 00:00 0
a2dc5000-a35c5000 rw-p 00000000 00:00 0 [stack:21658]
a35c5000-a35c6000 ---p 00000000 00:00 0
a35c6000-a3dc6000 rw-p 00000000 00:00 0
a3dc6000-a3dc7000 ---p 00000000 00:00 0
a3dc7000-a45c7000 rw-p 00000000 00:00 0 [stack:21602]
a55c9000-a55ca000 ---p 00000000 00:00 0
a55ca000-a5dca000 rw-p 00000000 00:00 0 [stack:21501]
a5dca000-a5dcb000 ---p 00000000 00:00 0
a5dcb000-a65cb000 rw-p 00000000 00:00 0
a65cb000-a65cc000 ---p 00000000 00:00 0
a65cc000-a6dcc000 rw-p 00000000 00:00 0 [stack:21361]
a6dcc000-a6dcd000 ---p 00000000 00:00 0
a6dcd000-a75cd000 rw-p 00000000 00:00 0 [stack:21296]
a75cd000-a75ce000 ---p 00000000 00:00 0
a75ce000-a7dce000 rw-p 00000000 00:00 0 [stack:21342]
a7dce000-a7dcf000 ---p 00000000 00:00 0
a7dcf000-a85cf000 rw-p 00000000 00:00 0 [stack:21168]
a85cf000-a85d0000 ---p 00000000 00:00 0
a85d0000-a8dd0000 rw-p 00000000 00:00 0 [stack:21395]
a8dd0000-a8dd1000 ---p 00000000 00:00 0
a8dd1000-a95d1000 rw-p 00000000 00:00 0 [stack:21093]
a9900000-a99bc000 rw-p 00000000 00:00 0
a99bc000-a9a00000 ---p 00000000 00:00 0
a9c00000-a9cfc000 rw-p 00000000 00:00 0
a9cfc000-a9d00000 ---p 00000000 00:00 0
a9dd2000-a9fff000 rw-p 00000000 08:01 82321969 /usr/share/file/magic.mgc
a9fff000-aa000000 ---p 00000000 00:00 0
aa000000-aa800000 rw-p 00000000 00:00 0 [stack:21089]
aa800000-aa8f2000 rw-p 00000000 00:00 0
aa8f2000-aa900000 ---p 00000000 00:00 0
aa9f1000-aa9f2000 ---p 00000000 00:00 0
aa9f2000-ab1f2000 rw-p 00000000 00:00 0 [stack:21088]
ab1f2000-ab1f3000 ---p 00000000 00:00 0
ab1f3000-ab9f3000 rw-p 00000000 00:00 0 [stack:21087]
ab9f3000-ab9f4000 ---p 00000000 00:00 0
ab9f4000-ac1f4000 rw-p 00000000 00:00 0 [stack:21086]
ac1f4000-ac1f5000 ---p 00000000 00:00 0
ac1f5000-ac9f5000 rw-p 00000000 00:00 0 [stack:21085]
ac9f5000-ac9f6000 ---p 00000000 00:00 0
ac9f6000-ad1f6000 rw-p 00000000 00:00 0 [stack:21084]
ad1f6000-ad1f7000 ---p 00000000 00:00 0
ad1f7000-ad9f7000 rw-p 00000000 00:00 0 [stack:21083]
ad9f7000-ad9f8000 ---p 00000000 00:00 0
ad9f8000-ae1f8000 rw-p 00000000 00:00 0 [stack:21082]
ae1f8000-ae1f9000 ---p 00000000 00:00 0
ae1f9000-ae9f9000 rw-p 00000000 00:00 0 [stack:21081]
ae9f9000-ae9fa000 ---p 00000000 00:00 0
ae9fa000-af1fa000 rw-p 00000000 00:00 0 [stack:21080]
af1fa000-af1fb000 ---p 00000000 00:00 0
af1fb000-af9fb000 rw-p 00000000 00:00 0 [stack:21079]
af9fb000-af9fc000 ---p 00000000 00:00 0
af9fc000-b01fc000 rw-p 00000000 00:00 0 [stack:21078]
b01fc000-b01fd000 ---p 00000000 00:00 0
b01fd000-b09fd000 rw-p 00000000 00:00 0 [stack:21076]
b0e00000-b0ee4000 rw-p 00000000 00:00 0
b0ee4000-b0f00000 ---p 00000000 00:00 0
b11fe000-b11ff000 ---p 00000000 00:00 0
b11ff000-b19ff000 rw-p 00000000 00:00 0 [stack:21077]
b19ff000-b1a00000 ---p 00000000 00:00 0
b1a00000-b2200000 rw-p 00000000 00:00 0 [stack:21071]
b2200000-b22fd000 rw-p 00000000 00:00 0
b22fd000-b2300000 ---p 00000000 00:00 0
b23ff000-b2400000 ---p 00000000 00:00 0
b2400000-b2c00000 rw-p 00000000 00:00 0 [stack:21070]
b2c00000-b2cbf000 rw-p 00000000 00:00 0
b2cbf000-b2d00000 ---p 00000000 00:00 0
b2dff000-b2e00000 ---p 00000000 00:00 0
b2e00000-b3600000 rw-p 00000000 00:00 0 [stack:21069]
b3600000-b3700000 rw-p 00000000 00:00 0
b37ff000-b3800000 ---p 00000000 00:00 0
b3800000-b4000000 rw-p 00000000 00:00 0 [stack:21068]
b4000000-b40d1000 rw-p 00000000 00:00 0
b40d1000-b4100000 ---p 00000000 00:00 0
b41ff000-b4200000 ---p 00000000 00:00 0
b4200000-b4a00000 rw-p 00000000 00:00 0 [stack:21067]
b4a00000-b4a21000 rw-p 00000000 00:00 0
b4a21000-b4b00000 ---p 00000000 00:00 0
b4bff000-b4c00000 ---p 00000000 00:00 0
b4c00000-b5400000 rw-p 00000000 00:00 0 [stack:21066]
b5400000-b54bd000 rw-p 00000000 00:00 0
b54bd000-b5500000 ---p 00000000 00:00 0
b55c9000-b55e6000 r-xp 00000000 08:01 82055385 /usr/lib/python2.7/lib-dynload/_codecs_cn.so
b55e6000-b55e7000 ---p 0001d000 08:01 82055385 /usr/lib/python2.7/lib-dynload/_codecs_cn.so
b55e7000-b55ea000 r--p 0001d000 08:01 82055385 /usr/lib/python2.7/lib-dynload/_codecs_cn.so
b55ea000-b55eb000 rw-p 00020000 08:01 82055385 /usr/lib/python2.7/lib-dynload/_codecs_cn.so
b55eb000-b55fd000 r-xp 00000000 08:01 82055421 /usr/lib/python2.7/lib-dynload/parser.so
b55fd000-b55fe000 r--p 00012000 08:01 82055421 /usr/lib/python2.7/lib-dynload/parser.so
b55fe000-b55ff000 rw-p 00013000 08:01 82055421 /usr/lib/python2.7/lib-dynload/parser.so
b55ff000-b5600000 ---p 00000000 00:00 0
b5600000-b5e00000 rw-p 00000000 00:00 0 [stack:21065]
b5e00000-b5eda000 rw-p 00000000 00:00 0
b5eda000-b5f00000 ---p 00000000 00:00 0
b5f08000-b5f0d000 r-xp 00000000 08:01 67896053 /lib/i386-linux-gnu/libnss_dns-2.15.so
b5f0d000-b5f0e000 r--p 00004000 08:01 67896053 /lib/i386-linux-gnu/libnss_dns-2.15.so
b5f0e000-b5f0f000 rw-p 00005000 08:01 67896053 /lib/i386-linux-gnu/libnss_dns-2.15.so
b5f0f000-b5f10000 ---p 00000000 00:00 0
b5f10000-b6710000 rw-p 00000000 00:00 0 [stack:21063]
b6710000-b671b000 r-xp 00000000 08:01 67896055 /lib/i386-linux-gnu/libnss_files-2.15.so
b671b000-b671c000 r--p 0000a000 08:01 67896055 /lib/i386-linux-gnu/libnss_files-2.15.so
b671c000-b671d000 rw-p 0000b000 08:01 67896055 /lib/i386-linux-gnu/libnss_files-2.15.so
b671d000-b6727000 r-xp 00000000 08:01 67896059 /lib/i386-linux-gnu/libnss_nis-2.15.so
b6727000-b6728000 r--p 00009000 08:01 67896059 /lib/i386-linux-gnu/libnss_nis-2.15.so
b6728000-b6729000 rw-p 0000a000 08:01 67896059 /lib/i386-linux-gnu/libnss_nis-2.15.so
b6729000-b673f000 r-xp 00000000 08:01 67896049 /lib/i386-linux-gnu/libnsl-2.15.so
b673f000-b6740000 r--p 00015000 08:01 67896049 /lib/i386-linux-gnu/libnsl-2.15.so
b6740000-b6741000 rw-p 00016000 08:01 67896049 /lib/i386-linux-gnu/libnsl-2.15.so
b6741000-b6743000 rw-p 00000000 00:00 0
b6743000-b675d000 r-xp 00000000 08:01 81794140 /usr/lib/i386-linux-gnu/libmagic.so.1.0.0
b675d000-b675e000 r--p 0001a000 08:01 81794140 /usr/lib/i386-linux-gnu/libmagic.so.1.0.0
b675e000-b675f000 rw-p 0001b000 08:01 81794140 /usr/lib/i386-linux-gnu/libmagic.so.1.0.0
b6769000-b676f000 r-xp 00000000 08:01 82055402 /usr/lib/python2.7/lib-dynload/_multibytecodec.so
b676f000-b6770000 r--p 00005000 08:01 82055402 /usr/lib/python2.7/lib-dynload/_multibytecodec.so
b6770000-b6771000 rw-p 00006000 08:01 82055402 /usr/lib/python2.7/lib-dynload/_multibytecodec.so
b6771000-b678c000 r-xp 00000000 08:01 82055392 /usr/lib/python2.7/lib-dynload/_ctypes.so
b678c000-b6791000 r--p 0001a000 08:01 82055392 /usr/lib/python2.7/lib-dynload/_ctypes.so
b6791000-b6794000 rw-p 0001f000 08:01 82055392 /usr/lib/python2.7/lib-dynload/_ctypes.so
b6794000-b679c000 r-xp 00000000 08:01 67895998 /lib/i386-linux-gnu/libcrypt-2.15.so
b679c000-b679d000 r--p 00007000 08:01 67895998 /lib/i386-linux-gnu/libcrypt-2.15.so
b679d000-b679e000 rw-p 00008000 08:01 67895998 /lib/i386-linux-gnu/libcrypt-2.15.so
b679e000-b67c5000 rw-p 00000000 00:00 0
b67c5000-b6870000 r-xp 00000000 08:01 81794322 /usr/lib/i386-linux-gnu/libsqlite3.so.0.8.6
b6870000-b6871000 r--p 000ab000 08:01 81794322 /usr/lib/i386-linux-gnu/libsqlite3.so.0.8.6
b6871000-b6872000 rw-p 000ac000 08:01 81794322 /usr/lib/i386-linux-gnu/libsqlite3.so.0.8.6
b6872000-b6873000 rw-p 00000000 00:00 0
b6873000-b68b5000 r-xp 00000000 08:01 81794064 /usr/lib/i386-linux-gnu/libhx509.so.5.0.0
b68b5000-b68b6000 r--p 00042000 08:01 81794064 /usr/lib/i386-linux-gnu/libhx509.so.5.0.0
b68b6000-b68b7000 rw-p 00043000 08:01 81794064 /usr/lib/i386-linux-gnu/libhx509.so.5.0.0
b68b7000-b68b8000 rw-p 00000000 00:00 0
b68b8000-b68c5000 r-xp 00000000 08:01 81794058 /usr/lib/i386-linux-gnu/libheimbase.so.1.0.0
b68c5000-b68c6000 r--p 0000c000 08:01 81794058 /usr/lib/i386-linux-gnu/libheimbase.so.1.0.0
b68c6000-b68c7000 rw-p 0000d000 08:01 81794058 /usr/lib/i386-linux-gnu/libheimbase.so.1.0.0
b68c7000-b68ee000 r-xp 00000000 08:01 81794406 /usr/lib/i386-linux-gnu/libwind.so.0.0.0
b68ee000-b68ef000 r--p 00027000 08:01 81794406 /usr/lib/i386-linux-gnu/libwind.so.0.0.0
b68ef000-b68f0000 rw-p 00028000 08:01 81794406 /usr/lib/i386-linux-gnu/libwind.so.0.0.0
b68f0000-b68f3000 r-xp 00000000 08:01 67896021 /lib/i386-linux-gnu/libgpg-error.so.0.8.0
b68f3000-b68f4000 r--p 00002000 08:01 67896021 /lib/i386-linux-gnu/libgpg-error.so.0.8.0
b68f4000-b68f5000 rw-p 00003000 08:01 67896021 /lib/i386-linux-gnu/libgpg-error.so.0.8.0
b68f5000-b6907000 r-xp 00000000 08:01 81794197 /usr/lib/i386-linux-gnu/libp11-kit.so.0.0.0
b6907000-b6908000 r--p 00011000 08:01 81794197 /usr/lib/i386-linux-gnu/libp11-kit.so.0.0.0
b6908000-b6909000 rw-p 00012000 08:01 81794197 /usr/lib/i386-linux-gnu/libp11-kit.so.0.0.0
b6909000-b6919000 r-xp 00000000 08:01 81794340 /usr/lib/i386-linux-gnu/libtasn1.so.3.1.16
b6919000-b691a000 r--p 0000f000 08:01 81794340 /usr/lib/i386-linux-gnu/libtasn1.so.3.1.16
b691a000-b691b000 rw-p 00010000 08:01 81794340 /usr/lib/i386-linux-gnu/libtasn1.so.3.1.16
b691b000-b692e000 r-xp 00000000 08:01 81794274 /usr/lib/i386-linux-gnu/libroken.so.18.1.0
b692e000-b692f000 r--p 00013000 08:01 81794274 /usr/lib/i386-linux-gnu/libroken.so.18.1.0
b692f000-b6930000 rw-p 00014000 08:01 81794274 /usr/lib/i386-linux-gnu/libroken.so.18.1.0
b6930000-b6961000 r-xp 00000000 08:01 81794056 /usr/lib/i386-linux-gnu/libhcrypto.so.4.1.0
b6961000-b6962000 r--p 00031000 08:01 81794056 /usr/lib/i386-linux-gnu/libhcrypto.so.4.1.0
b6962000-b6963000 rw-p 00032000 08:01 81794056 /usr/lib/i386-linux-gnu/libhcrypto.so.4.1.0
b6963000-b6964000 rw-p 00000000 00:00 0
b6964000-b6a00000 r-xp 00000000 08:01 81793735 /usr/lib/i386-linux-gnu/libasn1.so.8.0.0
b6a00000-b6a01000 r--p 0009c000 08:01 81793735 /usr/lib/i386-linux-gnu/libasn1.so.8.0.0
b6a01000-b6a03000 rw-p 0009d000 08:01 81793735 /usr/lib/i386-linux-gnu/libasn1.so.8.0.0
b6a03000-b6a80000 r-xp 00000000 08:01 81794113 /usr/lib/i386-linux-gnu/libkrb5.so.26.0.0
b6a80000-b6a82000 r--p 0007c000 08:01 81794113 /usr/lib/i386-linux-gnu/libkrb5.so.26.0.0
b6a82000-b6a84000 rw-p 0007e000 08:01 81794113 /usr/lib/i386-linux-gnu/libkrb5.so.26.0.0
b6a84000-b6a8a000 r-xp 00000000 08:01 81794060 /usr/lib/i386-linux-gnu/libheimntlm.so.0.1.0
b6a8a000-b6a8b000 r--p 00005000 08:01 81794060 /usr/lib/i386-linux-gnu/libheimntlm.so.0.1.0
b6a8b000-b6a8c000 rw-p 00006000 08:01 81794060 /usr/lib/i386-linux-gnu/libheimntlm.so.0.1.0
b6a8c000-b6b0d000 r-xp 00000000 08:01 67896017 /lib/i386-linux-gnu/libgcrypt.so.11.7.0
b6b0d000-b6b0e000 r--p 00080000 08:01 67896017 /lib/i386-linux-gnu/libgcrypt.so.11.7.0
b6b0e000-b6b10000 rw-p 00081000 08:01 67896017 /lib/i386-linux-gnu/libgcrypt.so.11.7.0
b6b10000-b6bcf000 r-xp 00000000 08:01 81795453 /usr/lib/i386-linux-gnu/libgnutls.so.26.21.8
b6bcf000-b6bd3000 r--p 000be000 08:01 81795453 /usr/lib/i386-linux-gnu/libgnutls.so.26.21.8
b6bd3000-b6bd4000 rw-p 000c2000 08:01 81795453 /usr/lib/i386-linux-gnu/libgnutls.so.26.21.8
b6bd4000-b6c0d000 r-xp 00000000 08:01 81793990 /usr/lib/i386-linux-gnu/libgssapi.so.3.0.0
b6c0d000-b6c0e000 r--p 00038000 08:01 81793990 /usr/lib/i386-linux-gnu/libgssapi.so.3.0.0
b6c0e000-b6c0f000 rw-p 00039000 08:01 81793990 /usr/lib/i386-linux-gnu/libgssapi.so.3.0.0
b6c0f000-b6c10000 rw-p 00000000 00:00 0
b6c10000-b6c29000 r-xp 00000000 08:01 81794291 /usr/lib/i386-linux-gnu/libsasl2.so.2.0.25
b6c29000-b6c2a000 r--p 00019000 08:01 81794291 /usr/lib/i386-linux-gnu/libsasl2.so.2.0.25
b6c2a000-b6c2b000 rw-p 0001a000 08:01 81794291 /usr/lib/i386-linux-gnu/libsasl2.so.2.0.25
b6c2b000-b6c38000 r-xp 00000000 08:01 81794119 /usr/lib/i386-linux-gnu/liblber-2.4.so.2.8.3
b6c38000-b6c39000 r--p 0000c000 08:01 81794119 /usr/lib/i386-linux-gnu/liblber-2.4.so.2.8.3
b6c39000-b6c3a000 rw-p 0000d000 08:01 81794119 /usr/lib/i386-linux-gnu/liblber-2.4.so.2.8.3
b6c3a000-b6c60000 r-xp 00000000 08:01 81794109 /usr/lib/i386-linux-gnu/libk5crypto.so.3.1
b6c60000-b6c61000 r--p 00026000 08:01 81794109 /usr/lib/i386-linux-gnu/libk5crypto.so.3.1
b6c61000-b6c62000 rw-p 00027000 08:01 81794109 /usr/lib/i386-linux-gnu/libk5crypto.so.3.1
b6c62000-b6cb0000 r-xp 00000000 08:01 81794126 /usr/lib/i386-linux-gnu/libldap_r-2.4.so.2.8.3
b6cb0000-b6cb1000 r--p 0004e000 08:01 81794126 /usr/lib/i386-linux-gnu/libldap_r-2.4.so.2.8.3
b6cb1000-b6cb2000 rw-p 0004f000 08:01 81794126 /usr/lib/i386-linux-gnu/libldap_r-2.4.so.2.8.3
b6cb2000-b6cb3000 rw-p 00000000 00:00 0
b6cb3000-b6cee000 r-xp 00000000 08:01 81793992 /usr/lib/i386-linux-gnu/libgssapi_krb5.so.2.2
b6cee000-b6cef000 r--p 0003a000 08:01 81793992 /usr/lib/i386-linux-gnu/libgssapi_krb5.so.2.2
b6cef000-b6cf0000 rw-p 0003b000 08:01 81793992 /usr/lib/i386-linux-gnu/libgssapi_krb5.so.2.2
b6cf0000-b6db7000 r-xp 00000000 08:01 81794115 /usr/lib/i386-linux-gnu/libkrb5.so.3.3
b6db7000-b6dbd000 r--p 000c6000 08:01 81794115 /usr/lib/i386-linux-gnu/libkrb5.so.3.3
b6dbd000-b6dbe000 rw-p 000cc000 08:01 81794115 /usr/lib/i386-linux-gnu/libkrb5.so.3.3
b6dbe000-b6de5000 r-xp 00000000 08:01 81794012 /usr/lib/libpq.so.5.4
b6de5000-b6de6000 ---p 00027000 08:01 81794012 /usr/lib/libpq.so.5.4
b6de6000-b6de7000 r--p 00027000 08:01 81794012 /usr/lib/libpq.so.5.4
b6de7000-b6de8000 rw-p 00028000 08:01 81794012 /usr/lib/libpq.so.5.4
b6ded000-b6def000 r-xp 00000000 08:01 67895335 /lib/libnss_mdns4_minimal.so.2
b6def000-b6df0000 r--p 00001000 08:01 67895335 /lib/libnss_mdns4_minimal.so.2
b6df0000-b6df1000 rw-p 00002000 08:01 67895335 /lib/libnss_mdns4_minimal.so.2
b6df1000-b6df8000 r-xp 00000000 08:01 82320416 /usr/local/lib/python2.7/dist-packages/ssdeep.so
b6df8000-b6df9000 r--p 00006000 08:01 82320416 /usr/local/lib/python2.7/dist-packages/ssdeep.so
b6df9000-b6dfa000 rw-p 00007000 08:01 82320416 /usr/local/lib/python2.7/dist-packages/ssdeep.so
b6dfa000-b6e1e000 r-xp 00000000 08:01 86379651 /usr/local/lib/python2.7/dist-packages/psycopg2/_psycopg.so
b6e1e000-b6e1f000 r--p 00023000 08:01 86379651 /usr/local/lib/python2.7/dist-packages/psycopg2/_psycopg.so
b6e1f000-b6e22000 rw-p 00024000 08:01 86379651 /usr/local/lib/python2.7/dist-packages/psycopg2/_psycopg.so
b6e22000-b6e3f000 r-xp 00000000 08:01 82055399 /usr/lib/python2.7/lib-dynload/_io.so
b6e3f000-b6e40000 r--p 0001c000 08:01 82055399 /usr/lib/python2.7/lib-dynload/_io.so
b6e40000-b6e48000 rw-p 0001d000 08:01 82055399 /usr/lib/python2.7/lib-dynload/_io.so
b6e48000-b6e8a000 rw-p 00000000 00:00 0
b6e8a000-b6e91000 r-xp 00000000 08:01 67896051 /lib/i386-linux-gnu/libnss_compat-2.15.so
b6e91000-b6e92000 r--p 00006000 08:01 67896051 /lib/i386-linux-gnu/libnss_compat-2.15.so
b6e92000-b6e93000 rw-p 00007000 08:01 67896051 /lib/i386-linux-gnu/libnss_compat-2.15.so
b6e93000-b6ea6000 r-xp 00000000 08:01 67896092 /lib/i386-linux-gnu/libresolv-2.15.so
b6ea6000-b6ea7000 r--p 00013000 08:01 67896092 /lib/i386-linux-gnu/libresolv-2.15.so
b6ea7000-b6ea8000 rw-p 00014000 08:01 67896092 /lib/i386-linux-gnu/libresolv-2.15.so
b6ea8000-b6eaa000 rw-p 00000000 00:00 0
b6eaa000-b6eb2000 r-xp 00000000 08:01 82054324 /usr/lib/python2.7/dist-packages/simplejson/_speedups.so
b6eb2000-b6eb3000 r--p 00008000 08:01 82054324 /usr/lib/python2.7/dist-packages/simplejson/_speedups.so
b6eb3000-b6eb4000 rw-p 00009000 08:01 82054324 /usr/lib/python2.7/dist-packages/simplejson/_speedups.so
b6eb4000-b6ec7000 r-xp 00000000 08:01 82055411 /usr/lib/python2.7/lib-dynload/datetime.so
b6ec7000-b6ec8000 r--p 00012000 08:01 82055411 /usr/lib/python2.7/lib-dynload/datetime.so
b6ec8000-b6ecb000 rw-p 00013000 08:01 82055411 /usr/lib/python2.7/lib-dynload/datetime.so
b6ecb000-b6fae000 rw-p 00000000 00:00 0
b6fae000-b6ffd000 r-xp 00000000 08:01 67896101 /lib/i386-linux-gnu/libssl.so.1.0.0
b6ffd000-b6ffe000 ---p 0004f000 08:01 67896101 /lib/i386-linux-gnu/libssl.so.1.0.0
b6ffe000-b7000000 r--p 0004f000 08:01 67896101 /lib/i386-linux-gnu/libssl.so.1.0.0
b7000000-b7004000 rw-p 00051000 08:01 67896101 /lib/i386-linux-gnu/libssl.so.1.0.0
b7004000-b7045000 rw-p 00000000 00:00 0
b7045000-b71d7000 r-xp 00000000 08:01 67896000 /lib/i386-linux-gnu/libcrypto.so.1.0.0
b71d7000-b71d8000 ---p 00192000 08:01 67896000 /lib/i386-linux-gnu/libcrypto.so.1.0.0
b71d8000-b71e7000 r--p 00192000 08:01 67896000 /lib/i386-linux-gnu/libcrypto.so.1.0.0
b71e7000-b71ee000 rw-p 001a1000 08:01 67896000 /lib/i386-linux-gnu/libcrypto.so.1.0.0
b71ee000-b71f3000 rw-p 00000000 00:00 0
b71f3000-b71f7000 r-xp 00000000 08:01 67896119 /lib/i386-linux-gnu/libuuid.so.1.3.0
b71f7000-b71f8000 r--p 00003000 08:01 67896119 /lib/i386-linux-gnu/libuuid.so.1.3.0
b71f8000-b71f9000 rw-p 00004000 08:01 67896119 /lib/i386-linux-gnu/libuuid.so.1.3.0
b71f9000-b71fa000 rwxp 00000000 00:00 0
b71fa000-b7201000 r-xp 00000000 08:01 81794117 /usr/lib/i386-linux-gnu/libkrb5support.so.0.1
b7201000-b7202000 r--p 00006000 08:01 81794117 /usr/lib/i386-linux-gnu/libkrb5support.so.0.1
b7202000-b7203000 rw-p 00007000 08:01 81794117 /usr/lib/i386-linux-gnu/libkrb5support.so.0.1
b7203000-b7206000 r-xp 00000000 08:01 82055397 /usr/lib/python2.7/lib-dynload/_hashlib.so
b7206000-b7207000 r--p 00002000 08:01 82055397 /usr/lib/python2.7/lib-dynload/_hashlib.so
b7207000-b7208000 rw-p 00003000 08:01 82055397 /usr/lib/python2.7/lib-dynload/_hashlib.so
b7208000-b7209000 r--p 005e0000 08:01 81796337 /usr/lib/locale/locale-archive
b7209000-b7409000 r--p 00000000 08:01 81796337 /usr/lib/locale/locale-archive
b7409000-b74ce000 rw-p 00000000 00:00 0
b74ce000-b74f8000 r-xp 00000000 08:01 67896032 /lib/i386-linux-gnu/libm-2.15.so
b74f8000-b74f9000 r--p 00029000 08:01 67896032 /lib/i386-linux-gnu/libm-2.15.so
b74f9000-b74fa000 rw-p 0002a000 08:01 67896032 /lib/i386-linux-gnu/libm-2.15.so
b74fa000-b7516000 r-xp 00000000 08:01 67896015 /lib/i386-linux-gnu/libgcc_s.so.1
b7516000-b7517000 r--p 0001b000 08:01 67896015 /lib/i386-linux-gnu/libgcc_s.so.1
b7517000-b7518000 rw-p 0001c000 08:01 67896015 /lib/i386-linux-gnu/libgcc_s.so.1
b7518000-b76bb000 r-xp 00000000 08:01 67895990 /lib/i386-linux-gnu/libc-2.15.so
b76bb000-b76bc000 ---p 001a3000 08:01 67895990 /lib/i386-linux-gnu/libc-2.15.so
b76bc000-b76be000 r--p 001a3000 08:01 67895990 /lib/i386-linux-gnu/libc-2.15.so
b76be000-b76bf000 rw-p 001a5000 08:01 67895990 /lib/i386-linux-gnu/libc-2.15.so
b76bf000-b76c2000 rw-p 00000000 00:00 0
b76c2000-b76d9000 r-xp 00000000 08:01 67896124 /lib/i386-linux-gnu/libz.so.1.2.7
b76d9000-b76da000 r--p 00016000 08:01 67896124 /lib/i386-linux-gnu/libz.so.1.2.7
b76da000-b76db000 rw-p 00017000 08:01 67896124 /lib/i386-linux-gnu/libz.so.1.2.7
b76db000-b76dd000 r-xp 00000000 08:01 67896116 /lib/i386-linux-gnu/libutil-2.15.so
b76dd000-b76de000 r--p 00001000 08:01 67896116 /lib/i386-linux-gnu/libutil-2.15.so
b76de000-b76df000 rw-p 00002000 08:01 67896116 /lib/i386-linux-gnu/libutil-2.15.so
b76df000-b76e0000 rw-p 00000000 00:00 0
b76e0000-b76e3000 r-xp 00000000 08:01 67896005 /lib/i386-linux-gnu/libdl-2.15.so
b76e3000-b76e4000 r--p 00002000 08:01 67896005 /lib/i386-linux-gnu/libdl-2.15.so
b76e4000-b76e5000 rw-p 00003000 08:01 67896005 /lib/i386-linux-gnu/libdl-2.15.so
b76e5000-b76fc000 r-xp 00000000 08:01 67896086 /lib/i386-linux-gnu/libpthread-2.15.so
b76fc000-b76fd000 r--p 00016000 08:01 67896086 /lib/i386-linux-gnu/libpthread-2.15.so
b76fd000-b76fe000 rw-p 00017000 08:01 67896086 /lib/i386-linux-gnu/libpthread-2.15.so
b76fe000-b7700000 rw-p 00000000 00:00 0
b7700000-b7702000 r-xp 00000000 08:01 67896028 /lib/i386-linux-gnu/libkeyutils.so.1.4
b7702000-b7703000 r--p 00002000 08:01 67896028 /lib/i386-linux-gnu/libkeyutils.so.1.4
b7703000-b7704000 rw-p 00003000 08:01 67896028 /lib/i386-linux-gnu/libkeyutils.so.1.4
b7704000-b7707000 r-xp 00000000 08:01 67895997 /lib/i386-linux-gnu/libcom_err.so.2.1
b7707000-b7708000 r--p 00002000 08:01 67895997 /lib/i386-linux-gnu/libcom_err.so.2.1
b7708000-b7709000 rw-p 00003000 08:01 67895997 /lib/i386-linux-gnu/libcom_err.so.2.1
b7709000-b7710000 r-xp 00000000 08:01 82055405 /usr/lib/python2.7/lib-dynload/_ssl.so
b7710000-b7711000 r--p 00006000 08:01 82055405 /usr/lib/python2.7/lib-dynload/_ssl.so
b7711000-b7712000 rw-p 00007000 08:01 82055405 /usr/lib/python2.7/lib-dynload/_ssl.so
b7712000-b7714000 rw-p 00000000 00:00 0
b7714000-b7715000 r-xp 00000000 00:00 0 [vdso]
b7715000-b7735000 r-xp 00000000 08:01 67895968 /lib/i386-linux-gnu/ld-2.15.so
b7735000-b7736000 r--p 0001f000 08:01 67895968 /lib/i386-linux-gnu/ld-2.15.so
b7736000-b7737000 rw-p 00020000 08:01 67895968 /lib/i386-linux-gnu/ld-2.15.so
bff9a000-bffbb000 rw-p 00000000 00:00 0 [stack]

from python-magic.

ryancassar avatar ryancassar commented on May 22, 2024

I was experiencing similar issues in a multithreaded environment, I found giving each thread it's own instance of the Magic class fixed it. Something like this:

import collections
import magic
import threading

class magicdict(dict):
    def __missing__(self, flags):
        self[flags] = value = magic.Magic(mime=flags & magic.MAGIC_MIME, mime_encoding=flags & magic.MAGIC_MIME_ENCODING)

        return value

def lets_see_some_magic(flags=magic.MAGIC_NONE, wand_cache=collections.defaultdict(magicdict)):
    return wand_cache[threading.current_thread()][flags]

I'm not convinced this should be handled inside python-magic, but maybe documented as a known work around, or an optional activation, magic.attempt_thread_safety() or so.

from python-magic.

ahupp avatar ahupp commented on May 22, 2024

Oh wow. I spent some time digging through libmagic looking for the magic_close issue and couldn't find the issue but @thesteed's stack is really helpful. Fix coming.

from python-magic.

liucougar avatar liucougar commented on May 22, 2024

i see a fix is landed. could you consider releasing a new version to pypi?

from python-magic.

ahupp avatar ahupp commented on May 22, 2024

For some reason I was under the impression the GIL was held while in extension calls by default, but turns out CDLL does not hold the GIL (PyDLL does). This was a huge oversight on my part, my apologies.

I will push a new version shortly, I'd like to triage all the new issues first.

from python-magic.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.