Originally posted by: Hui Qi
environment: AIX Version 5
AIX vmpenngrove 3 5 00080649D600
xlc 8.0
issue:
In the sub thread, after loading some shared libs by using dlopen, including ours and the 3rd-part one, then invoked 3rd-part one's API, hit ENOMEM.
However, if less shared libs were loaded, or the env variable LIBPATH is shorter, there is no problem.
It's the 3rd-part shared library, and the fixed version can not be available in the short time.
What's the cause, is there any local fix can figured it out?
truss info
thread_create() = 3899539
__loadx(0x01070280, 0x30023690, 0x00000960, 0x100017C0, 0x2FF22F0A) = 0x300497FA
loadquery(2, 0x30027998, 0x00001000) = 0
__loadx(0x02000200, 0xF054D158, 0x00003E80, 0x300497FA, 0x00000000) = 0x00000000
__loadx(0x01070280, 0x30023690, 0x00000960, 0x100017D8, 0x2FF22F0A) = 0xF038D400
loadquery(2, 0x30027998, 0x00001000) = 0
__loadx(0x02000200, 0xF054D158, 0x00003E80, 0xF038D400, 0x00000000) = 0x00000000
__loadx(0x01070280, 0x30023690, 0x00000960, 0x100017EC, 0x2FF22F0A) = 0x00000000
__loadx(0x01070280, 0x30023690, 0x00000960, 0x100017FC, 0x2FF22F0A) = 0xF0372130
loadquery(2, 0x30027998, 0x00001000) = 0
__loadx(0x02000200, 0xF054D158, 0x00003E80, 0xF0372130, 0x00000000) = 0x00000000
__loadx(0x01070280, 0x30023690, 0x00000960, 0x10001808, 0x2FF22F0A) = 0x00000000
__loadx(0x01070280, 0x30023690, 0x00000960, 0x10001820, 0x2FF22F0A) = 0xF036B2F4
loadquery(2, 0x30027998, 0x00001000) = 0
__loadx(0x02000200, 0xF054D158, 0x00003E80, 0xF036B2F4, 0x00000000) = 0x00000000
loadquery(2, 0x3002D8C8, 0x00000400) Err#12 ENOMEM
#AIX-Forum