Skip to content

Can't use in dso for tengine #11

Description

@higkoo

Tengine/nginx: https://github.com/alibaba/tengine

tengine -v

Tengine version: Tengine/2.0.3 (nginx/1.4.7)

tengine -t

nginx: [emerg] can't locate symbol in module "ngx_http_statsd" in /etc/tengine/tengine.conf:16
configuration file /etc/tengine/tengine.conf test failed

Error by : load ngx_http_statsd.so;

compile log

$ cat /tmp/build.log
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.7knwYD

  • umask 022
  • cd /data/hukai/rpmbuild/BUILD
  • LANG=C
  • export LANG
  • unset DISPLAY
  • mkdir -pv /data/hukai/rpmbuild/BUILD/tengine-statsd-14.08
    mkdir: created directory `/data/hukai/rpmbuild/BUILD/tengine-statsd-14.08'
  • cd /data/hukai/rpmbuild/BUILD/tengine-statsd-14.08
  • echo A
  • unzip /data/hukai/rpmbuild/SOURCES/nginx-statsd-master.zip
    Archive: /data/hukai/rpmbuild/SOURCES/nginx-statsd-master.zip
    b756a12
    creating: nginx-statsd-master/
    inflating: nginx-statsd-master/LICENSE
    inflating: nginx-statsd-master/README.mkd
    inflating: nginx-statsd-master/config
    inflating: nginx-statsd-master/ngx_http_statsd.c
  • exit 0
    Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.QVA3uM
  • umask 022
  • cd /data/hukai/rpmbuild/BUILD
  • LANG=C
  • export LANG
  • unset DISPLAY
  • exit 0
    Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.48TD2U
  • umask 022
  • cd /data/hukai/rpmbuild/BUILD
  • '[' /data/hukai/rpmbuild/BUILDROOT/tengine-statsd-14.08-20.el6.x86_64 '!=' / ']'
  • rm -rf /data/hukai/rpmbuild/BUILDROOT/tengine-statsd-14.08-20.el6.x86_64
    ++ dirname /data/hukai/rpmbuild/BUILDROOT/tengine-statsd-14.08-20.el6.x86_64
  • mkdir -p /data/hukai/rpmbuild/BUILDROOT
  • mkdir /data/hukai/rpmbuild/BUILDROOT/tengine-statsd-14.08-20.el6.x86_64
  • LANG=C
  • export LANG
  • unset DISPLAY
  • mkdir -pv /data/hukai/rpmbuild/BUILDROOT/tengine-statsd-14.08-20.el6.x86_64/usr/lib64/tengine/modules
    mkdir: created directory /data/hukai/rpmbuild/BUILDROOT/tengine-statsd-14.08-20.el6.x86_64/usr' mkdir: created directory/data/hukai/rpmbuild/BUILDROOT/tengine-statsd-14.08-20.el6.x86_64/usr/lib64'
    mkdir: created directory /data/hukai/rpmbuild/BUILDROOT/tengine-statsd-14.08-20.el6.x86_64/usr/lib64/tengine' mkdir: created directory/data/hukai/rpmbuild/BUILDROOT/tengine-statsd-14.08-20.el6.x86_64/usr/lib64/tengine/modules'
  • /usr/sbin/dso_tool --nginx-include=/usr/share/tengine/include --dst=/data/hukai/rpmbuild/BUILDROOT/tengine-statsd-14.08-20.el6.x86_64/usr/lib64/tengine/modules --add-module=/data/hukai/rpmbuild/BUILD/tengine-statsd-14.08/nginx-statsd-master
    configuring additional modules
    adding module in /data/hukai/rpmbuild/BUILD/tengine-statsd-14.08/nginx-statsd-master
    /data/hukai/rpmbuild/BUILD/tengine-statsd-14.08/nginx-statsd-master
    • ngx_http_statsd will be compiled
      cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -DNDK_SET_VAR -fPIC
      -I/usr/include/libxml2 -Iobjs -I/usr/share/tengine/include
      -o objs/src/nginx-statsd-master/ngx_http_statsd.o
      /data/hukai/rpmbuild/BUILD/tengine-statsd-14.08/nginx-statsd-master/ngx_http_statsd.c
      cc -rdynamic -fPIC -shared -o objs/ngx_http_statsd.so
      objs/src/nginx-statsd-master/ngx_http_statsd.o
      -Wl,-E -lssl
      copying objs/ngx_http_statsd.so to /data/hukai/rpmbuild/BUILDROOT/tengine-statsd-14.08-20.el6.x86_64/usr/lib64/tengine/modules
  • find /data/hukai/rpmbuild/BUILDROOT/tengine-statsd-14.08-20.el6.x86_64 -type f -name .packlist -exec rm -f '{}' ';'
  • find /data/hukai/rpmbuild/BUILDROOT/tengine-statsd-14.08-20.el6.x86_64 -type f -name perllocal.pod -exec rm -f '{}' ';'
  • find /data/hukai/rpmbuild/BUILDROOT/tengine-statsd-14.08-20.el6.x86_64 -type f -empty -exec rm -f '{}' ';'
  • find /data/hukai/rpmbuild/BUILDROOT/tengine-statsd-14.08-20.el6.x86_64 -type f -iname '*.so' -exec chmod 0755 '{}' ';'
  • /usr/lib/rpm/check-buildroot
  • /usr/lib/rpm/redhat/brp-compress
  • /usr/lib/rpm/redhat/brp-strip /usr/bin/strip
  • /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
  • /usr/lib/rpm/redhat/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump
  • /usr/lib/rpm/brp-python-bytecompile
  • /usr/lib/rpm/redhat/brp-python-hardlink
  • /usr/lib/rpm/redhat/brp-java-repack-jars
    Processing files: tengine-statsd-14.08-20.el6.x86_64
    Provides: ngx_http_statsd.so()(64bit) webserver
    Requires(interp): /bin/sh /bin/sh /bin/sh /bin/sh
    Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
    Requires(pre): /bin/sh shadow-utils
    Requires(post): /bin/sh chkconfig
    Requires(preun): /bin/sh chkconfig initscripts
    Requires(postun): /bin/sh initscripts
    Requires: libc.so.6()(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.4)(64bit) libssl.so.10()(64bit) rtld(GNU_HASH)
    Checking for unpackaged file(s): /usr/lib/rpm/check-files /data/hukai/rpmbuild/BUILDROOT/tengine-statsd-14.08-20.el6.x86_64
    Wrote: /data/hukai/rpmbuild/SRPMS/tengine-statsd-14.08-20.el6.nosrc.rpm
    Wrote: /data/hukai/rpmbuild/RPMS/x86_64/tengine-statsd-14.08-20.el6.x86_64.rpm
    Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.aFzmOn
  • umask 022
  • cd /data/hukai/rpmbuild/BUILD
  • rm -rf /data/hukai/rpmbuild/BUILD/tengine-statsd-14.08
  • exit 0

ldd /usr/lib64/tengine/modules/ngx_http_statsd.so

linux-vdso.so.1 =>  (0x00007fff6f314000)
libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007f651a666000)
libc.so.6 => /lib64/libc.so.6 (0x00007f651a2d4000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f651a091000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f6519db2000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f6519bae000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f6519981000)
libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007f65195a1000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f651939d000)
libz.so.1 => /lib64/libz.so.1 (0x00007f6519186000)
/lib64/ld-linux-x86-64.so.2 (0x0000003169e00000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f6518f7b000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f6518d78000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f6518b5d000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6518940000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f6518720000)

Other infomations:

strace tengine -t

open("/usr/lib64/tengine/modules/ngx_http_statsd.so", O_RDONLY) = 5
read(5, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\r\0\0\0\0\0\0"..., 832) = 832
fstat(5, {st_mode=S_IFREG|0755, st_size=99101, ...}) = 0
mmap(NULL, 2106664, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 5, 0) = 0x7f826cea2000
mprotect(0x7f826cea4000, 2097152, PROT_NONE) = 0
mmap(0x7f826d0a4000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 5, 0x2000) = 0x7f826d0a4000
close(5) = 0
write(3, "2014/08/21 00:35:34 [emerg] 1857"..., 117) = 117
write(2, "nginx: [emerg] can't locate symb"..., 95nginx: [emerg] can't locate symbol in module "ngx_http_statsd" in /etc/tengine/tengine.conf:16
) = 95
close(4)

ldd -u /usr/lib64/tengine/modules/ngx_http_statsd.so

 26831: /usr/lib64/tengine/modules/ngx_http_statsd.so: error: symbol lookup error: undefined symbol: ngx_http_core_module (continued)

undefined symbol: ngx_http_core_module (/usr/lib64/tengine/modules/ngx_http_statsd.so)
26831: /usr/lib64/tengine/modules/ngx_http_statsd.so: error: symbol lookup error: undefined symbol: ngx_io (continued)
undefined symbol: ngx_io (/usr/lib64/tengine/modules/ngx_http_statsd.so)
26831: /usr/lib64/tengine/modules/ngx_http_statsd.so: error: symbol lookup error: undefined symbol: ngx_conf_set_num_slot (continued)
undefined symbol: ngx_conf_set_num_slot (/usr/lib64/tengine/modules/ngx_http_statsd.so)
Unused direct dependencies:

/usr/lib64/libssl.so.10

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions