Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't use in dso for tengine #11

Open
higkoo opened this issue Aug 20, 2014 · 2 comments
Open

Can't use in dso for tengine #11

higkoo opened this issue Aug 20, 2014 · 2 comments

Comments

@higkoo
Copy link

higkoo commented Aug 20, 2014

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
@cfsego
Copy link

cfsego commented Aug 21, 2014

there is an error in config
"ngx_http_statsd_module" is added to HTTP_MODULES, though ngx_addon_name is "ngx_http_statsd"

@higkoo
Copy link
Author

higkoo commented Aug 22, 2014

Yes,thanks. fix with

ngx_addon_name=ngx_http_statsd_module
HTTP_MODULES="$HTTP_MODULES ngx_http_statsd_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_statsd.c"
CORE_LIBS="$CORE_LIBS -lssl"

2014-08-21 11:40 GMT+08:00 Chuanwen Chen notifications@github.com:

there is an error in config
"ngx_http_statsd_module" is added to HTTP_MODULES, though ngx_addon_name
is "ngx_http_statsd"


Reply to this email directly or view it on GitHub
#11 (comment)
.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants