AIX

AIX

Connect with fellow AIX users and experts to gain knowledge, share insights, and solve problems.


#Power
 View Only

loading dynamic libraries and using it encountered ENOMEM

  • 1.  loading dynamic libraries and using it encountered ENOMEM

    Posted Thu January 07, 2010 04:18 AM

    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