using sato and sdk images from http://autobuilder.pokylinux.org/nightly/20110212-1/qemu/qemuppc/ git info : b9a97e07b48b20b00feff5b8c7196c3a3b7762b6 when qemuppc startup,run command "zypper search avahi",errors met below : using sato images(poky-image-sato-qemuppc-20110213151807.rootfs.ext3): root@qemuppc:~# zypper search avahi *** glibc detected *** zypper: munmap_chunk(): invalid pointer: 0x102423f8 *** ======= Backtrace: ========= /lib/libc.so.6[0xfe0d184] /usr/lib/libstdc++.so.6(_ZdlPv+0x18)[0xf7a4c90] /usr/lib/libstdc++.so.6(_ZNSs4_Rep10_M_destroyERKSaIcE+0x10)[0xf77e648] zypper(_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_M_eraseEPSt13_Rb_tree_nodeIS2_E+0x130)[0x100f2b60] zypper(_ZNSt3mapISsSsSt4lessISsESaISt4pairIKSsSsEEED1Ev+0x14)[0x100f2b98] /usr/lib/libzypp.so.810(_ZNSt4pairIKSsSt3mapISsSsSt4lessISsESaIS_IS0_SsEEEED1Ev+0x30)[0x4833ee18] /usr/lib/libzypp.so.810(_ZN9__gnu_cxx13new_allocatorISt4pairIKSsSt3mapISsSsSt4lessISsESaIS1_IS2_SsEEEEE7destroyEPS9_+0x24)[0x48341f34] /usr/lib/libzypp.so.810(_ZNSt8_Rb_treeISsSt4pairIKSsSt3mapISsSsSt4lessISsESaIS0_IS1_SsEEEESt10_Select1stIS8_ES4_SaIS8_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS8_E+0x4c)[0x483406b4] /usr/lib/libzypp.so.810(_ZNSt8_Rb_treeISsSt4pairIKSsSt3mapISsSsSt4lessISsESaIS0_IS1_SsEEEESt10_Select1stIS8_ES4_SaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E+0x5c)[0x4833f898] /usr/lib/libzypp.so.810(_ZNSt8_Rb_treeISsSt4pairIKSsSt3mapISsSsSt4lessISsESaIS0_IS1_SsEEEESt10_Select1stIS8_ES4_SaIS8_EED1Ev+0x38)[0x4833eca8] /usr/lib/libzypp.so.810(_ZNSt3mapISsS_ISsSsSt4lessISsESaISt4pairIKSsSsEEES1_SaIS2_IS3_S6_EEED1Ev+0x24)[0x4833eba4] /usr/lib/libzypp.so.810(_ZN4zypp6parser7IniDictD1Ev+0x60)[0x4833e184] /usr/lib/libzypp.so.810(+0x388d54)[0x48349d54] /usr/lib/libzypp.so.810(_ZN4zypp6parser14RepoFileReaderC2ERKNS_10filesystem8PathnameERKN5boost8functionIFbRKNS_8RepoInfoEEEERKNS7_IFbRKNS_12ProgressDataEEEE+0x64)[0x48349f64] /usr/lib/libzypp.so.810(+0x5f86e0)[0x485b96e0] /usr/lib/libzypp.so.810(+0x5f8aa8)[0x485b9aa8] /usr/lib/libzypp.so.810(_ZN4zypp11RepoManager4Impl22init_knownRepositoriesEv+0xec)[0x485bb244] /usr/lib/libzypp.so.810(_ZN4zypp11RepoManager4ImplC2ERKNS_18RepoManagerOptionsE+0x64)[0x485cd640] /usr/lib/libzypp.so.810(_ZN4zypp11RepoManagerC2ERKNS_18RepoManagerOptionsE+0x4c)[0x485bb494] zypper(_ZN6Zypper15initRepoManagerEv+0x30)[0x10060588] zypper(_ZN6Zypper9doCommandEv+0x93c)[0x1004a048] zypper(_ZN6Zypper13safeDoCommandEv+0x84)[0x10056178] zypper(_ZN6Zypper4mainEiPPc+0x50)[0x10059ea4] zypper(main+0x444)[0x10030668] /lib/libc.so.6[0xfdaf824] /lib/libc.so.6[0xfdaf9d4] ======= Memory map: ======== 00100000-00102000 r-xp 00000000 00:00 0 [vdso] 0e970000-0ea14000 r-xp 00000000 03:00 20483 /usr/lib/libgnutls.so.26.16.13 0ea14000-0ea23000 ---p 000a4000 03:00 20483 /usr/lib/libgnutls.so.26.16.13 0ea23000-0ea2a000 rwxp 000a3000 03:00 20483 /usr/lib/libgnutls.so.26.16.13 0ea30000-0ea3f000 r-xp 00000000 03:00 46912 /usr/lib/libtasn1.so.3.1.11 0ea3f000-0ea4e000 ---p 0000f000 03:00 46912 /usr/lib/libtasn1.so.3.1.11 0ea4e000-0ea4f000 rwxp 0000e000 03:00 46912 /usr/lib/libtasn1.so.3.1.11 0ea60000-0ead8000 r-xp 00000000 03:00 47925 /usr/lib/libgcrypt.so.11.6.0 0ead8000-0eae8000 ---p 00078000 03:00 47925 /usr/lib/libgcrypt.so.11.6.0 0eae8000-0eaeb000 rwxp 00078000 03:00 47925 /usr/lib/libgcrypt.so.11.6.0 0eaf0000-0eaf3000 r-xp 00000000 03:00 39770 /usr/lib/libgpg-error.so.0.7.0 0eaf3000-0eb02000 ---p 00003000 03:00 39770 /usr/lib/libgpg-error.so.0.7.0 0eb02000-0eb03000 rwxp 00002000 03:00 39770 /usr/lib/libgpg-error.so.0.7.0 0eba0000-0ebab000 r-xp 00000000 03:00 9304 /usr/lib/libpopt.so.0.0.0 0ebab000-0ebba000 ---p 0000b000 03:00 9304 /usr/lib/libpopt.so.0.0.0 0ebba000-0ebbb000 rwxp 0000a000 03:00 9304 /usr/lib/libpopt.so.0.0.0 0ec00000-0ed2a000 r-xp 00000000 03:00 49955 /usr/lib/libxml2.so.2.7.7 0ed2a000-0ed3a000 ---p 0012a000 03:00 49955 /usr/lib/libxml2.so.2.7.7 0ed3a000-0ed42000 rwxp 0012a000 03:00 49955 /usr/lib/libxml2.so.2.7.7 0ed42000-0ed43000 rwxp 00000000 00:00 0 0f1c0000-0f213000 r-xp 00000000 03:00 25573 /usr/lib/libaugeas.so.0.12.1 0f213000-0f223000 ---p 00053000 03:00 25573 /usr/lib/libaugeas.so.0.12.1 0f223000-0f225000 rwxp 00053000 03:00 25573 /usr/lib/libaugeas.so.0.12.1 0f230000-0f27d000 r-xp 00000000 03:00 41816 /usr/lib/libcurl.so.5.2.0 0f27d000-0f28c000 ---p 0004d000 03:00 41816 /usr/lib/libcurl.so.5.2.0 0f28c000-0f290000 rwxp 0004c000 03:00 41816 /usr/lib/libcurl.so.5.2.0 0f2a0000-0f2d1000 r-xp 00000000 03:00 42833 /usr/lib/libreadline.so.6.1 0f2d1000-0f2e0000 ---p 00031000 03:00 42833 /usr/lib/libreadline.so.6.1 0f2e0000-0f2e6000 rwxp 00030000 03:00 42833 /usr/lib/libreadline.so.6.1 0f2e6000-0f2e7000 rwxp 00000000 00:00 0 0f2f0000-0f352000 r-xp 00000000 03:00 50974 /usr/lib/librpm-5.4.so 0f352000-0f361000 ---p 00062000 03:00 50974 /usr/lib/librpm-5.4.so 0f361000-0f368000 rwxp 00061000 03:00 50974 /usr/lib/librpm-5.4.so 0f368000-0f378000 rwxp 00000000 00:00 0 0f380000-0f39d000 r-xp 00000000 03:00 20480 /usr/lib/libtinfo.so.5.7 0f39d000-0f3ad000 ---p 0001d000 03:00 20480 /usr/lib/libtinfo.so.5.7 0f3ad000-0f3b0000 rwxp 0001d000 03:00 20480 /usr/lib/libtinfo.so.5.7 0f3e0000-0f42f000 r-xp 00000000 03:00 6270 /usr/lib/librpmdb-5.4.so 0f42f000-0f43e000 ---p 0004f000 03:00 6270 /usr/lib/librpmdb-5.4.so 0f43e000-0f443000 rwxp 0004e000 03:00 6270 /usr/lib/librpmdb-5.4.so 0f443000-0f471000 rwxp 00000000 00:00 0 0f480000-0f5e8000 r-xp 00000000 03:00 34711 /usr/lib/librpmio-5.4.so 0f5e8000-0f5f8000 ---p 00168000 03:00 34711 /usr/lib/librpmio-5.4.so 0f5f8000-0f601000 rwxp 00168000 03:00 34711 /usr/lib/librpmio-5.4.so 0f601000-0f634000 rwxp 00000000 00:00 0 0f640000-0f683000 r-xp 00000000 03:00 36751 /usr/lib/libssl.so.0.9.8 0f683000-0f693000 ---p 00043000 03:00 36751 /usr/lib/libssl.so.0.9.8 0f693000-0f698000 rwxp 00043000 03:00 36751 /usr/lib/libssl.so.0.9.8 0f6a0000-0f6c4000 r-xp 00000000 03:00 6267 /usr/lib/libfa.so.1.3.2 0f6c4000-0f6d4000 ---p 00024000 03:00 6267 /usr/lib/libfa.so.1.3.2 0f6d4000-0f6d5000 rwxp 00024000 03:00 6267 /usr/lib/libfa.so.1.3.2 0f6e0000-0f7da000 r-xp 00000000 03:00 1182 /usr/lib/libstdc++.so.6.0.14 0f7da000-0f7ea000 ---p 000fa000 03:00 1182 /usr/lib/libstdc++.so.6.0.14 0f7ea000-0f7ef000 r--p 000fa000 03:00 1182 /usr/lib/libstdc++.so.6.0.14 0f7ef000-0f7f2000 rwxp 000ff000 03:00 1182 /usr/lib/libstdc++.so.6.0.14 0f7f2000-0f7f8000 rwxp 00000000 00:00 0 0f830000-0f971000 r-xp 00000000 03:00 15402 /usr/lib/libcrypto.so.0.9.8 0f971000-0f980000 ---p 00141000 03:00 15402 /usr/lib/libcrypto.so.0.9.8 0f980000-0f99b000 rwxp 00140000 03:00 15402 /usr/lib/libcrypto.so.0.9.8 0f99b000-0f99e000 rwxp 00000000 00:00 0 0f9b0000-0f9bc000 r-xp 00000000 03:00 40659 /lib/libudev.so.0.9.3 0f9bc000-0f9cb000 ---p 0000c000 03:00 40659 /lib/libudev.so.0.9.3 0f9cb000-0f9cc000 rwxp 0000b000 03:00 40659 /lib/libudev.so.0.9.3 0f9d0000-0f9d2000 r-xp 00000000 03:00 37738 /usr/lib/libpcreposix.so.0.0.0 0f9d2000-0f9e1000 ---p 00002000 03:00 37738 /usr/lib/libpcreposix.so.0.0.0 0f9e1000-0f9e2000 rwxp 00001000 03:00 37738 /usr/lib/libpcreposix.so.0.0.0 0f9f0000-0fad2000 r-xp 00000000 03:00 5251 /usr/lib/libdb-5.1.so 0fad2000-0fae2000 ---p 000e2000 03:00 5251 /usr/lib/libdb-5.1.so 0fae2000-0fae9000 rwxp 000e2000 03:00 5251 /usr/lib/libdb-5.1.so 0faf0000-0fb04000 r-xp 00000000 03:00 18304 /lib/libgcc_s.so.1 0fb04000-0fb14000 ---p 00014000 03:00 18304 /lib/libgcc_s.so.1 0fb14000-0fb15000 rwxp 00014000 03:00 18304 /lib/libgcc_s.so.1 0fb30000-0fb34000 r-xp 00000000 03:00 43704 /lib/libattr.so.1.1.0 0fb34000-0fb43000 ---p 00004000 03:00 43704 /lib/libattr.so.1.1.0 0fb43000-0fb44000 rwxp 00003000 03:00 43704 /lib/libattr.so.1.1.0 0fb50000-0fb52000 r-xp 00000000 03:00 25416 /lib/libutil-2.12.1.so 0fb52000-0fb61000 ---p 00002000 03:00 25416 /lib/libutil-2.12.1.so 0fb61000-0fb62000 r--p 00001000 03:00 25416 /lib/libutil-2.12.1.so 0fb62000-0fb63000 rwxp 00002000 03:00 25416 /lib/libutil-2.12.1.so 0fb70000-0fb9a000 r-xp 00000000 03:00 25560 /usr/lib/libexpat.so.1.5.2 0fb9a000-0fbaa000 ---p 0002a000 03:00 25560 /usr/lib/libexpat.so.1.5.2 0fbaa000-0fbac000 rwxp 0002a000 03:00 25560 /usr/lib/libexpat.so.1.5.2 0fbb0000-0fbb7000 r-xp 00000000 03:00 27448 /lib/libacl.so.1.1.0 0fbb7000-0fbc6000 ---p 00007000 03:00 27448 /lib/libacl.so.1.1.0 0fbc6000-0fbc7000 rwxp 00006000 03:00 27448 /lib/libacl.so.1.1.0 0fbd0000-0fbee000 r-xp 00000000 03:00 29632 /usr/lib/libpcre.so.0.0.1 0fbee000-0fbfe000 ---p 0001e000 03:00 29632 /usr/lib/libpcre.so.0.0.1 0fbfe000-0fbff000 rwxp 0001e000 03:00 29632 /usr/lib/libpcre.so.0.0.1 0fc10000-0fc5a000 r-xp 00000000 03:00 49933 /usr/lib/librpmmisc-5.4.so 0fc5a000-0fc6a000 ---p 0004a000 03:00 49933 /usr/lib/librpmmisc-5.4.so 0fc6a000-0fc6c000 rwxp 0004a000 03:00 49933 /usr/lib/librpmmisc-5.4.so 0fc70000-0fc80000 r-xp 00000000 03:00 39774 /usr/lib/libbz2.so.0.0.0 0fc80000-0fc8f000 ---p 00010000 03:00 39774 /usr/lib/libbz2.so.0.0.0 0fc8f000-0fc91000 rwxp 0000f000 03:00 39774 /usr/lib/libbz2.so.0.0.0 0fca0000-0fcb5000 r-xp 00000000 03:00 20481 /usr/lib/libelf-0.148.so 0fcb5000-0fcc4000 ---p 00015000 03:00 20481 /usr/lib/libelf-0.148.so 0fcc4000-0fcc5000 r--p 00014000 03:00 20481 /usr/lib/libelf-0.148.so 0fcc5000-0fcc6000 rwxp 00015000 03:00 20481 /usr/lib/libelf-0.148.so 0fcd0000-0fd75000 r-xp 00000000 03:00 44720 /lib/libm-2.12.1.so 0fd75000-0fd84000 ---p 000a5000 03:00 44720 /lib/libm-2.12.1.so 0fd84000-0fd85000 r--p 000a4000 03:00 44720 /lib/libm-2.12.1.so 0fd85000-0fd88000 rwxp 000a5000 03:00 44720 /lib/libm-2.12.1.so 0fd88000-0fd89000 rwxp 00000000 00:00 0 0fd90000-0feeb000 r-xp 00000000 03:00 45737 /lib/libc-2.12.1.so 0feeb000-0fefb000 ---p 0015b000 03:00 45737 /lib/libc-2.12.1.so 0fefb000-0fefd000 r--p 0015b000 03:00 45737 /lib/libc-2.12.1.so 0fefd000-0ff00000 rwxp 0015d000 03:00 45737 /lib/libc-2.12.1.so 0ff00000-0ff03000 rwxp 00000000 00:00 0 0ff10000-0ff19000 r-xp 00000000 03:00 28452 /lib/librt-2.12.1.so 0ff19000-0ff28000 ---p 00009000 03:00 28452 /lib/librt-2.12.1.so 0ff28000-0ff29000 r--p 00008000 03:00 28452 /lib/librt-2.12.1.so 0ff29000-0ff2a000 rwxp 00009000 03:00 28452 /lib/librt-2.12.1.so 0ff2a000-0ff35000 rwxp 00000000 00:00 0 0ff40000-0ff54000 r-xp 00000000 03:00 32660 /usr/lib/libz.so.1.2.5 0ff54000-0ff63000 ---p 00014000 03:00 32660 /usr/lib/libz.so.1.2.5 0ff63000-0ff64000 rwxp 00013000 03:00 32660 /usr/lib/libz.so.1.2.5 0ff70000-0ff87000 r-xp 00000000 03:00 29481 /lib/libpthread-2.12.1.so 0ff87000-0ff96000 ---p 00017000 03:00 29481 /lib/libpthread-2.12.1.so 0ff96000-0ff97000 r--p 00016000 03:00 29481 /lib/libpthread-2.12.1.so 0ff97000-0ff98000 rwxp 00017000 03:00 29481 /lib/libpthread-2.12.1.so 0ff98000-0ff9a000 rwxp 00000000 00:00 0 0ffa0000-0ffa2000 r-xp 00000000 03:00 7131 /lib/libdl-2.12.1.so 0ffa2000-0ffb2000 ---p 00002000 03:00 7131 /lib/libdl-2.12.1.so 0ffb2000-0ffb3000 r--p 00002000 03:00 7131 /lib/libdl-2.12.1.so 0ffb3000-0ffb4000 rwxp 00003000 03:00 7131 /lib/libdl-2.12.1.so 0ffc0000-0ffdf000 r-xp 00000000 03:00 25419 /lib/ld-2.12.1.so 0ffee000-0ffef000 r--p 0001e000 03:00 25419 /lib/ld-2.12.1.so 0ffef000-0fff1000 rwxp 0001f000 03:00 25419 /lib/ld-2.12.1.so 10000000-10157000 r-xp 00000000 03:00 26553 /usr/bin/zypper 10167000-1018c000 rwxp 00157000 03:00 26553 /usr/bin/zypper 1018c000-10253000 rwxp 00000000 00:00 0 [heap] 48000000-48001000 rw-p 00000000 00:00 0 48001000-4883f000 r-xp 00000000 03:00 45893 /usr/lib/libzypp.so.810.1.0 4883f000-4884e000 ---p 0083e000 03:00 45893 /usr/lib/libzypp.so.810.1.0 4884e000-488b3000 rwxp 0083d000 03:00 45893 /usr/lib/libzypp.so.810.1.0 488b3000-488b5000 rwxp 00000000 00:00 0 488b5000-488bf000 rw-p 00000000 00:00 0 bfcb7000-bfce3000 rwxp 00000000 00:00 0 [stack] Aborted using sdk images(poky-image-sato-sdk-qemuppc-20110213151807.rootfs.ext3 ): root@qemuppc:~# zypper search avahi *** glibc detected *** zypper: corrupted double-linked list: 0x101d1178 *** ======= Backtrace: ========= /lib/libc.so.6[0xfe9d184] /lib/libc.so.6[0xfea028c] /lib/libc.so.6(__libc_malloc+0x80)[0xfea1ce0] /lib/libc.so.6[0xfedd244] /lib/libc.so.6[0xfeea714] /lib/libc.so.6(regcomp+0xcc)[0xfeeb570] /usr/lib/librpmio-5.4.so(mireRegcomp+0x164)[0xf1f43bc] /usr/lib/librpmio-5.4.so(mireAppend+0xe8)[0xf1f497c] /usr/lib/librpm-5.4.so[0xf5f4764] /usr/lib/librpm-5.4.so[0xf5f4bac] /usr/lib/librpm-5.4.so[0xf5f4cf4] /usr/lib/librpm-5.4.so(rpmReadConfigFiles+0x50)[0xf5f55b0] /usr/lib/libzypp.so.810(_ZN4zypp6target3rpm8librpmDb10globalInitEv+0x58)[0x48475750] /usr/lib/libzypp.so.810(_ZN4zypp6target3rpm5RpmDbC2Ev+0xf4)[0x4844dd50] /usr/lib/libzypp.so.810(_ZN4zypp6target10TargetImplC2ERKNS_10filesystem8PathnameEb+0x9c)[0x48494554] /usr/lib/libzypp.so.810(_ZN4zypp6TargetC1ERKNS_10filesystem8PathnameEb+0x9c)[0x48609878] /usr/lib/libzypp.so.810(_ZN4zypp11zypp_detail8ZYppImpl16initializeTargetERKNS_10filesystem8PathnameEb+0x220)[0x486236e4] /usr/lib/libzypp.so.810(_ZN4zypp4ZYpp16initializeTargetERKNS_10filesystem8PathnameEb+0x54)[0x4861c790] zypper(_Z11init_targetR6Zypper+0x128)[0x10073510] zypper(_Z13do_init_reposISt6vectorISsSaISsEEEvR6ZypperRKT_+0x68)[0x10090ae0] zypper(_Z10init_reposISt6vectorISsSaISsEEEvR6ZypperRKT_+0x4c)[0x10092114] zypper(_Z10init_reposR6Zypper+0x30)[0x100871e0] zypper(_ZN6Zypper9doCommandEv+0x944)[0x1004a050] zypper(_ZN6Zypper13safeDoCommandEv+0x84)[0x10056178] zypper(_ZN6Zypper4mainEiPPc+0x50)[0x10059ea4] zypper(main+0x444)[0x10030668] /lib/libc.so.6[0xfe3f824] /lib/libc.so.6[0xfe3f9d4] ======= Memory map: ======== 00100000-00102000 r-xp 00000000 00:00 0 [vdso] 0e960000-0ea04000 r-xp 00000000 03:00 31866 /usr/lib/libgnutls.so.26.16.13 0ea04000-0ea13000 ---p 000a4000 03:00 31866 /usr/lib/libgnutls.so.26.16.13 0ea13000-0ea1a000 rwxp 000a3000 03:00 31866 /usr/lib/libgnutls.so.26.16.13 0ea20000-0ea2f000 r-xp 00000000 03:00 65697 /usr/lib/libtasn1.so.3.1.11 0ea2f000-0ea3e000 ---p 0000f000 03:00 65697 /usr/lib/libtasn1.so.3.1.11 0ea3e000-0ea3f000 rwxp 0000e000 03:00 65697 /usr/lib/libtasn1.so.3.1.11 0ea70000-0ea73000 r-xp 00000000 03:00 40047 /usr/lib/libgpg-error.so.0.7.0 0ea73000-0ea82000 ---p 00003000 03:00 40047 /usr/lib/libgpg-error.so.0.7.0 0ea82000-0ea83000 rwxp 00002000 03:00 40047 /usr/lib/libgpg-error.so.0.7.0 0ea90000-0eb08000 r-xp 00000000 03:00 76958 /usr/lib/libgcrypt.so.11.6.0 0eb08000-0eb18000 ---p 00078000 03:00 76958 /usr/lib/libgcrypt.so.11.6.0 0eb18000-0eb1b000 rwxp 00078000 03:00 76958 /usr/lib/libgcrypt.so.11.6.0 0eb90000-0eb9b000 r-xp 00000000 03:00 77944 /usr/lib/libpopt.so.0.0.0 0eb9b000-0ebaa000 ---p 0000b000 03:00 77944 /usr/lib/libpopt.so.0.0.0 0ebaa000-0ebab000 rwxp 0000a000 03:00 77944 /usr/lib/libpopt.so.0.0.0 0f060000-0f18a000 r-xp 00000000 03:00 57498 /usr/lib/libxml2.so.2.7.7 0f18a000-0f19a000 ---p 0012a000 03:00 57498 /usr/lib/libxml2.so.2.7.7 0f19a000-0f1a2000 rwxp 0012a000 03:00 57498 /usr/lib/libxml2.so.2.7.7 0f1a2000-0f1a3000 rwxp 00000000 00:00 0 0f1c0000-0f328000 r-xp 00000000 03:00 92311 /usr/lib/librpmio-5.4.so 0f328000-0f338000 ---p 00168000 03:00 92311 /usr/lib/librpmio-5.4.so 0f338000-0f341000 rwxp 00168000 03:00 92311 /usr/lib/librpmio-5.4.so 0f341000-0f374000 rwxp 00000000 00:00 0 0f380000-0f4c1000 r-xp 00000000 03:00 61561 /usr/lib/libcrypto.so.0.9.8 0f4c1000-0f4d0000 ---p 00141000 03:00 61561 /usr/lib/libcrypto.so.0.9.8 0f4d0000-0f4eb000 rwxp 00140000 03:00 61561 /usr/lib/libcrypto.so.0.9.8 0f4eb000-0f4ee000 rwxp 00000000 00:00 0 0f560000-0f591000 r-xp 00000000 03:00 40057 /usr/lib/libreadline.so.6.1 0f591000-0f5a0000 ---p 00031000 03:00 40057 /usr/lib/libreadline.so.6.1 0f5a0000-0f5a6000 rwxp 00030000 03:00 40057 /usr/lib/libreadline.so.6.1 0f5a6000-0f5a7000 rwxp 00000000 00:00 0 0f5b0000-0f612000 r-xp 00000000 03:00 81055 /usr/lib/librpm-5.4.so 0f612000-0f621000 ---p 00062000 03:00 81055 /usr/lib/librpm-5.4.so 0f621000-0f628000 rwxp 00061000 03:00 81055 /usr/lib/librpm-5.4.so 0f628000-0f638000 rwxp 00000000 00:00 0 0f640000-0f65d000 r-xp 00000000 03:00 66680 /usr/lib/libtinfo.so.5.7 0f65d000-0f66d000 ---p 0001d000 03:00 66680 /usr/lib/libtinfo.so.5.7 0f66d000-0f670000 rwxp 0001d000 03:00 66680 /usr/lib/libtinfo.so.5.7 0f680000-0f6d3000 r-xp 00000000 03:00 69790 /usr/lib/libaugeas.so.0.12.1 0f6d3000-0f6e3000 ---p 00053000 03:00 69790 /usr/lib/libaugeas.so.0.12.1 0f6e3000-0f6e5000 rwxp 00053000 03:00 69790 /usr/lib/libaugeas.so.0.12.1 0f6f0000-0f7ea000 r-xp 00000000 03:00 85120 /usr/lib/libstdc++.so.6.0.14 0f7ea000-0f7fa000 ---p 000fa000 03:00 85120 /usr/lib/libstdc++.so.6.0.14 0f7fa000-0f7ff000 r--p 000fa000 03:00 85120 /usr/lib/libstdc++.so.6.0.14 0f7ff000-0f802000 rwxp 000ff000 03:00 85120 /usr/lib/libstdc++.so.6.0.14 0f802000-0f808000 rwxp 00000000 00:00 0 0f810000-0f85d000 r-xp 00000000 03:00 56439 /usr/lib/libcurl.so.5.2.0 0f85d000-0f86c000 ---p 0004d000 03:00 56439 /usr/lib/libcurl.so.5.2.0 0f86c000-0f870000 rwxp 0004c000 03:00 56439 /usr/lib/libcurl.so.5.2.0 0f880000-0f8cf000 r-xp 00000000 03:00 5279 /usr/lib/librpmdb-5.4.so 0f8cf000-0f8de000 ---p 0004f000 03:00 5279 /usr/lib/librpmdb-5.4.so 0f8de000-0f8e3000 rwxp 0004e000 03:00 5279 /usr/lib/librpmdb-5.4.so 0f8e3000-0f911000 rwxp 00000000 00:00 0 0f920000-0f96a000 r-xp 00000000 03:00 93297 /usr/lib/librpmmisc-5.4.so 0f96a000-0f97a000 ---p 0004a000 03:00 93297 /usr/lib/librpmmisc-5.4.so 0f97a000-0f97c000 rwxp 0004a000 03:00 93297 /usr/lib/librpmmisc-5.4.so 0f980000-0f994000 r-xp 00000000 03:00 77835 /lib/libgcc_s.so.1 0f994000-0f9a4000 ---p 00014000 03:00 77835 /lib/libgcc_s.so.1 0f9a4000-0f9a5000 rwxp 00014000 03:00 77835 /lib/libgcc_s.so.1 0f9b0000-0f9d4000 r-xp 00000000 03:00 81050 /usr/lib/libfa.so.1.3.2 0f9d4000-0f9e4000 ---p 00024000 03:00 81050 /usr/lib/libfa.so.1.3.2 0f9e4000-0f9e5000 rwxp 00024000 03:00 81050 /usr/lib/libfa.so.1.3.2 0f9f0000-0fa1a000 r-xp 00000000 03:00 88183 /usr/lib/libexpat.so.1.5.2 0fa1a000-0fa2a000 ---p 0002a000 03:00 88183 /usr/lib/libexpat.so.1.5.2 0fa2a000-0fa2c000 rwxp 0002a000 03:00 88183 /usr/lib/libexpat.so.1.5.2 0fa30000-0fa3c000 r-xp 00000000 03:00 45069 /lib/libudev.so.0.9.3 0fa3c000-0fa4b000 ---p 0000c000 03:00 45069 /lib/libudev.so.0.9.3 0fa4b000-0fa4c000 rwxp 0000b000 03:00 45069 /lib/libudev.so.0.9.3 0fa50000-0fa52000 r-xp 00000000 03:00 83055 /usr/lib/libpcreposix.so.0.0.0 0fa52000-0fa61000 ---p 00002000 03:00 83055 /usr/lib/libpcreposix.so.0.0.0 0fa61000-0fa62000 rwxp 00001000 03:00 83055 /usr/lib/libpcreposix.so.0.0.0 0fa70000-0fb52000 r-xp 00000000 03:00 85146 /usr/lib/libdb-5.1.so 0fb52000-0fb62000 ---p 000e2000 03:00 85146 /usr/lib/libdb-5.1.so 0fb62000-0fb69000 rwxp 000e2000 03:00 85146 /usr/lib/libdb-5.1.so 0fb70000-0fb77000 r-xp 00000000 03:00 24586 /lib/libacl.so.1.1.0 0fb77000-0fb86000 ---p 00007000 03:00 24586 /lib/libacl.so.1.1.0 0fb86000-0fb87000 rwxp 00006000 03:00 24586 /lib/libacl.so.1.1.0 0fb90000-0fb92000 r-xp 00000000 03:00 65547 /lib/libutil-2.12.1.so 0fb92000-0fba1000 ---p 00002000 03:00 65547 /lib/libutil-2.12.1.so 0fba1000-0fba2000 r--p 00001000 03:00 65547 /lib/libutil-2.12.1.so 0fba2000-0fba3000 rwxp 00002000 03:00 65547 /lib/libutil-2.12.1.so 0fbb0000-0fbb4000 r-xp 00000000 03:00 79883 /lib/libattr.so.1.1.0 0fbb4000-0fbc3000 ---p 00004000 03:00 79883 /lib/libattr.so.1.1.0 0fbc3000-0fbc4000 rwxp 00003000 03:00 79883 /lib/libattr.so.1.1.0 0fbd0000-0fbee000 r-xp 00000000 03:00 74904 /usr/lib/libpcre.so.0.0.1 0fbee000-0fbfe000 ---p 0001e000 03:00 74904 /usr/lib/libpcre.so.0.0.1 0fbfe000-0fbff000 rwxp 0001e000 03:00 74904 /usr/lib/libpcre.so.0.0.1 0fc10000-0fc53000 r-xp 00000000 03:00 60576 /usr/lib/libssl.so.0.9.8 0fc53000-0fc63000 ---p 00043000 03:00 60576 /usr/lib/libssl.so.0.9.8 0fc63000-0fc68000 rwxp 00043000 03:00 60576 /usr/lib/libssl.so.0.9.8 0fc70000-0fc80000 r-xp 00000000 03:00 84081 /usr/lib/libbz2.so.0.0.0 0fc80000-0fc8f000 ---p 00010000 03:00 84081 /usr/lib/libbz2.so.0.0.0 0fc8f000-0fc91000 rwxp 0000f000 03:00 84081 /usr/lib/libbz2.so.0.0.0 0fca0000-0fcb5000 r-xp 00000000 03:00 17528 /usr/lib/libelf-0.148.so 0fcb5000-0fcc4000 ---p 00015000 03:00 17528 /usr/lib/libelf-0.148.so 0fcc4000-0fcc5000 r--p 00014000 03:00 17528 /usr/lib/libelf-0.148.so 0fcc5000-0fcc6000 rwxp 00015000 03:00 17528 /usr/lib/libelf-0.148.so 0fcd0000-0fd75000 r-xp 00000000 03:00 17419 /lib/libm-2.12.1.so 0fd75000-0fd84000 ---p 000a5000 03:00 17419 /lib/libm-2.12.1.so 0fd84000-0fd85000 r--p 000a4000 03:00 17419 /lib/libm-2.12.1.so 0fd85000-0fd88000 rwxp 000a5000 03:00 17419 /lib/libm-2.12.1.so 0fd88000-0fd89000 rwxp 00000000 00:00 0 0fd90000-0fda4000 r-xp 00000000 03:00 90224 /usr/lib/libz.so.1.2.5 0fda4000-0fdb3000 ---p 00014000 03:00 90224 /usr/lib/libz.so.1.2.5 0fdb3000-0fdb4000 rwxp 00013000 03:00 90224 /usr/lib/libz.so.1.2.5 0fdc0000-0fdc9000 r-xp 00000000 03:00 5128 /lib/librt-2.12.1.so 0fdc9000-0fdd8000 ---p 00009000 03:00 5128 /lib/librt-2.12.1.so 0fdd8000-0fdd9000 r--p 00008000 03:00 5128 /lib/librt-2.12.1.so 0fdd9000-0fdda000 rwxp 00009000 03:00 5128 /lib/librt-2.12.1.so 0fdda000-0fde5000 rwxp 00000000 00:00 0 0fdf0000-0fe07000 r-xp 00000000 03:00 51212 /lib/libpthread-2.12.1.so 0fe07000-0fe16000 ---p 00017000 03:00 51212 /lib/libpthread-2.12.1.so 0fe16000-0fe17000 r--p 00016000 03:00 51212 /lib/libpthread-2.12.1.so 0fe17000-0fe18000 rwxp 00017000 03:00 51212 /lib/libpthread-2.12.1.so 0fe18000-0fe1a000 rwxp 00000000 00:00 0 0fe20000-0ff7b000 r-xp 00000000 03:00 95234 /lib/libc-2.12.1.so 0ff7b000-0ff8b000 ---p 0015b000 03:00 95234 /lib/libc-2.12.1.so 0ff8b000-0ff8d000 r--p 0015b000 03:00 95234 /lib/libc-2.12.1.so 0ff8d000-0ff90000 rwxp 0015d000 03:00 95234 /lib/libc-2.12.1.so 0ff90000-0ff93000 rwxp 00000000 00:00 0 0ffa0000-0ffa2000 r-xp 00000000 03:00 66573 /lib/libdl-2.12.1.so 0ffa2000-0ffb2000 ---p 00002000 03:00 66573 /lib/libdl-2.12.1.so 0ffb2000-0ffb3000 r--p 00002000 03:00 66573 /lib/libdl-2.12.1.so 0ffb3000-0ffb4000 rwxp 00003000 03:00 66573 /lib/libdl-2.12.1.so 0ffc0000-0ffdf000 r-xp 00000000 03:00 60429 /lib/ld-2.12.1.so 0ffee000-0ffef000 r--p 0001e000 03:00 60429 /lib/ld-2.12.1.so 0ffef000-0fff1000 rwxp 0001f000 03:00 60429 /lib/ld-2.12.1.so 10000000-10157000 r-xp 00000000 03:00 69734 /usr/bin/zypper 10167000-1018c000 rwxp 00157000 03:00 69734 /usr/bin/zypper 1018c000-10253000 rwxp 00000000 00:00 0 [heap] 48000000-48001000 rw-p 00000000 00:00 0 48001000-4883f000 r-xp 00000000 03:00 61598 /usr/lib/libzypp.so.810.1.0 4883f000-4884e000 ---p 0083e000 03:00 61598 /usr/lib/libzypp.so.810.1.0 4884e000-488b3000 rwxp 0083d000 03:00 61598 /usr/lib/libzypp.so.810.1.0 488b3000-488b5000 rwxp 00000000 00:00 0 488b5000-488bf000 rw-p 00000000 00:00 0 48900000-48921000 rw-p 00000000 00:00 0 48921000-48a00000 ---p 00000000 00:00 0 bfbbd000-bfbe0000 rwxp 00000000 00:00 0 [stack] Aborted This error not happend on poky-image-sato-qemuppc-20110122231805.rootfs.ext3 (nightly build 20110121-1)
I've tried several ways to debug this issues, but gdb together with -dbg packages failed surprisingly in several different ways: a. gdb -core core /usr/lib/zypper gdb outputs "Backtrace stopped: frame did not save the PC" when bt b. running /usr/bin/.debug/zypper line 1: syntax error: unexpected "(" c. running zypper with debug version of librpm* and libzypp* segmentation fault at ld.so stage d. gdb --args zypper search avahi warning: Unable to find dynamic linker breakpoint function Not only that, different arch and image types show completely different errors, as we can see the ppc sato, ppc sdk and x86_64 fails (Bug 721) in very different ways, while at least x86 works. The backtrace shows that qemuppc sato failures happens in the destruction of the following class: map<std::string, ZypperCommand::Command> while in the source, the member of this data structure is fully statically constructed (and nothing looks architecture related).
Various aspects shows that ppc arch may be a little special and maybe even beyond only zypper: 1. The exact issue is reported only on ppc 2. different image types have different status 3. The problem submerged and emerged over time, see Bug 443 and Bug 722 - bug reported: 20101018, 20110114, 20110213 - not reported: 20101113, 20110122 4. other random bugs exists on qemu as well that binaries may segfault, see Bug 417 These make it very difficult to root cause the problem, and several other problems make it even harder: 1. zypper is written in C++ and boost (boost is difficult to debug...) 2. qemu is relatively slow for debugging (1 min+ to load a gdb session) 3. -sato or even -sato-sdk images are still somewhat restricted for a full development environment I'll continue to look into the bug, but am suggesting to lower the priority of ppc related zypper bugs for the above concerns.
Since the problem also happens on qemux86-64 could we debug it there to help eliminate some of the potentially ppc related issues? For reference, you should never run the binary in .debug. Using the main binary is fine and the symbols will automatically be picked up from the extra file in .debug as its part of gdb's default search path (well, that from libbfd).
Figured I should add the comments to the bug as well: While Paul was investigating he determined that the sizeof a malloc in rpm was incorrect. This sizeof indicated that the 'pcre' version of the regex_t structure was being used. (Which is correct -- RPM should ONLY be using pcre regex, as the normal system regex has limitations RPM needs to avoid.) Looking through the Zypper code, I find no invocations of the regex using the system regex. Looking at libzypp, I find a single call to the "#include <regex.h>". I've changed this to match rpm's pcreposix.h usage. This may fix the problem. The one confusing part in this there should not be a direct interface for Zypper to pass a regex_t structure into RPM for it to go through the "miRE" processing within RPM. So somewhere either Zypper is using a private interface, RPM is exposing more then it intended to, or ??? (My guess is RPM creates the memory with the pcre regex_t size, then passes it into libzypp, which tries to process it using the system regex_t instead -- causing the memory overrun.) So the patch that I provided attempts to synchronize libzypp and RPM to both be using pcre as -the- regex. Assuming this resolves the memory issue, we can worry about tracing how the problem occurred later... if it doesn't fix the problem, we need to start with Zypper/libzypp and trace into the RPM call structure and figure out how these data structures are created, used and destroyed. (What Paul pointed back to earlier today was the creation -- it's the usage that is where the memory overrun happens..) Hope this helps explain what I think the problem is, even if it doesn't really explain how to solve it. (One possible solution if we need to have an export of the regex_t data structure and avoid passing around raw memory... then zypper can do what it needs to using it's own regex functions...) -- I have pushed my changes to mhatle/zypper on the poky-contrib tree. (but I've been unable to test them) Basically what I did was poison the one instance of mire.h where it might have included "regex.h". This is likely always a bad thing to do. Then in the libzypp, I changed the one instance of including regex.h to include pcreposix.h instead. I THINK this will load in the correct regex processing functions -- but I'm not completely sure. (There might need to be an associated link line change to libzypp -- but so far it seems to link fine..)
In jbj's latest reply in rpm-devel: http://marc.info/?l=rpm-devel&m=129900937327748&w=2 He mentioned --with-pcre=internal, that's what we used in rpm-5.1.10, but with rpm-5.4.0, internal pcre is not available, so external pcre is used. I'd first guess that the pcre is a patched version, so I did a quick diff, the diff shows the interesting differences: ------- @@ -133,14 +130,19 @@ /* The functions */ -PCREPOSIX_EXP_DECL int regcomp(regex_t *, const char *, int); -PCREPOSIX_EXP_DECL int regexec(const regex_t *, const char *, size_t, +PCREPOSIX_EXP_DECL int pcreposix_regcomp(regex_t *, const char *, int); +PCREPOSIX_EXP_DECL int pcreposix_regexec(const regex_t *, const char *, size_t, regmatch_t *, int); -PCREPOSIX_EXP_DECL size_t regerror(int, const regex_t *, char *, size_t); -PCREPOSIX_EXP_DECL void regfree(regex_t *); +PCREPOSIX_EXP_DECL size_t pcreposix_regerror(int, const regex_t *, char *, size_t); +PCREPOSIX_EXP_DECL void pcreposix_regfree(regex_t *); #ifdef __cplusplus } /* extern "C" */ #endif +#define regcomp pcreposix_regcomp +#define regexec pcreposix_regexec +#define regerror pcreposix_regerror +#define regfree pcreposix_regfree + #endif /* End of pcreposix.h */ ------- together with the following definition in <pcreposix.h>: ------- typedef struct { void *re_pcre; size_t re_nsub; size_t re_erroffset; } regex_t; ------- which is exactly 24 bytes on x86_64, it's beginning to be clear what is happened. That is, the external libpcre.so has the symbol "regcomp", at complie time, rpm is built and supposed to be linked against it, but the name unfortunately collides with the "standard regex" which is in libc.so. Although there is no "#include <regex.h>" in the source file, at runtime, it's unintentionally linked to the libc version, the regcomp of libc is called instead the pcre one using pcre's data structure... that looks like a disaster. After rebuilding libpcre with the patch, zypper invocation seems to work well, at least on x86_64, no crash is observed. I checked several pcre versions, from 8.02 to 8.12, they all have the same issue, and debian actually has a patch against 8.02 to address it.
http://git.pokylinux.org/cgit/cgit.cgi/poky/commit/?id=763d783c6265aa6ffbb6de999becda40e3db3985
this also happend on mpc8315e-rdb sato-sdk images (nightly build 20110301-4): http://autobuilder.pokylinux.org/nightly/20110301-4/machines/mpc8315e-rdb/ppc/poky-image-sato-sdk-mpc8315e-rdb-20110302163011.rootfs.tar.gz
verified on nightly build 20110305-4 : sato images in http://autobuilder.pokylinux.org/nightly/20110305-4/machines/qemu sato-sdk images in http://autobuilder.pokylinux.org/nightly/20110305-4/machines/mpc8315e-rdb/ppc/ git info : c192fefd868be53c20dfd8bc44e3e815cf53a10a