pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pkgsrc-current/www/apache22 segfaults on solaris 10 x86



the information about how the /usr/sfw version of gcc is broken found
at your supplied link was surprising to me, but makes perfect sense
given the symptoms i'm seeing. thanks for this!

On Sun, Jun 20, 2010 at 6:59 AM, Youssef Ghorbal <djo%pasteur.fr@localhost> 
wrote:
> Dewey,
>
>        Are you compiling Apache with OpenSSL support ? In that case are you 
> using OpenSSL from the base system or are you using OpenSSL from pkgsrc.
>        If it's the cas you may be running into the issue related here : 
> http://www.oe-files.de/oefiles/lab/solpkgsrc
>        [...]
>        If you are on an x86 machine, apply this patch to the freshly 
> installed gcc. Otherwise, the package security/openssl will build, but not 
> work. You may find this out only much later, when a program that uses 
> libcrypto mysteriously crashes.
>        [...]
>
>        It will be easy to check if you are in that case just run 
> /opt/pkg/bin/openssl and you'll be fixed.
>
> Youssef
> -----------------
> On Jun 20, 2010, at 5:15 AM, Dewey Hylton wrote:
>
>> hi all. pkgsrc newbie here. first the why's then the issues ...
>>
>> i'm a relatively long-time sysadmin (15 years) having experience with
>> most prevalent *nix systems. during that time, i've provided services
>> - and rarely had folks logging into the systems. so there hasn't been
>> much need for debugging compiled code and such, and as a result i have
>> little experience doing so, and even less with C itself. shell and
>> python are my main tools.
>>
>> the customer wants an AMP stack for concrete5, and wants it on their
>> solaris 10 x86 box. i had problems getting the bundled apache/apache2
>> running with mysql and php5 without recompiling everything, so i went
>> looking for alternatives. pkgsrc looked promising for this reason:
>> since it supported so many operating systems that i deal with, it
>> might be possible to run N commands via pkgsrc and get the job done on
>> whatever system (solaris or other) i end up on. basically the
>> portability sold me on pkgsrc.
>>
>> i've been using freebsd/openbsd all over the place for years, but not
>> netbsd - and i am unfamiliar with pkgsrc. so i dug around and found
>> this ultra-simple recipe for getting the AMP stack running:
>> http://wiki.netbsd.se/How_to_install_a_LAMP_Server
>>
>> i start with a "vanilla" solaris 10 zone created specifically for this
>> task. step one is www/apache22, which appears to build and install ok.
>> however, the resultant httpd segfaults every time. it gets far enough
>> to create a logfile, but never populates it. pstack produces a
>> traceback from the core, but it's unreadable to me. truss is more
>> readable, but still isn't enough to give *me* a clue. i'll include
>> output from both at the bottom, in case someone else can make heads or
>> tails of the output.
>>
>> i then double-checked the docs and found this:
>>
>> 3.3. Platform-specific notes
>> 3.3.7. Solaris
>> 3.3.7.1. If you are using gcc
>> It makes life much simpler if you only use the same gcc consistently
>> for building all packages.
>> It is recommended that an external gcc be used only for bootstrapping,
>> then either build gcc from lang/gcc or install a binary gcc package,
>> then remove gcc used during bootstrapping.
>>
>> ... so i roll back to the "vanilla" zone prior to pkgsrc, and
>> bootstrap pkgsrc again. i then attempt to build gcc per the docs, so
>> it could be used to build the rest instead of using the gcc already on
>> the system:
>>
>> # cd /opt/pkgsrc/lang/gcc
>> # bmake install clean clean-depends
>> <snip>
>> gcc -c  -DIN_GCC   -O     -I. -I..
>> -I/opt/pkgsrc/lang/gcc/work/gcc-2.95.3/gcc/ch
>> -I/opt/pkgsrc/lang/gcc/work/gcc-2.95.3/gcc/ch/..
>> -I/opt/pkgsrc/lang/gcc/work/gcc-2.95.3/gcc/ch/../config
>> -I/opt/pkgsrc/lang/gcc/work/gcc-2.95.3/gcc/ch/../../include
>> /opt/pkgsrc/lang/gcc/work/gcc-2.95.3/gcc/ch/decl.c
>> /opt/pkgsrc/lang/gcc/work/gcc-2.95.3/gcc/ch/decl.c: In function 
>> `start_struct':
>> /opt/pkgsrc/lang/gcc/work/gcc-2.95.3/gcc/ch/decl.c:4451: error:
>> argument "code" doesn't match prototype
>> /opt/pkgsrc/lang/gcc/work/gcc-2.95.3/gcc/ch/ch-tree.h:736: error:
>> prototype declaration
>> gmake[2]: *** [decl.o] Error 1
>> gmake[2]: Leaving directory `/opt/pkgsrc/lang/gcc/work/objdir/gcc/ch'
>> gmake[1]: *** [cc1chill] Error 2
>> gmake[1]: Leaving directory `/opt/pkgsrc/lang/gcc/work/objdir/gcc'
>> gmake: *** [all-gcc] Error 2
>> *** Error code 2
>>
>> i did notice that despite calling bmake i'm seeing gmake errors, but
>> don't know if that's pertinent. anyway, at this point i can't test
>> building apache22 from pkgsrc-based gcc because i can't even build
>> gcc. so i go back to the docs again and find the following blurbs:
>> Solaris 2.6 through 9 are supported on both x86 and sparc. Please note
>> that the use of GNU binutils on Solaris is not supported, as of June
>> 2006.
>>
>> solaris 10 is not mentioned at all; is it supported? and can anyone
>> tell me if i'm using gnu binutils in this scenario?
>>
>>
>> so here i am, and here is what i am wondering:
>> am i just totally screwing this, am i just running into a few simple
>> bugs, or is pkgsrc just useless for me on solaris 10 x86?
>>
>> if you've actually made it this far, thanks very much for reading.
>> it'd be great if you could answer a few of the questions ... limited
>> debug info follows:
>>
>> pkgsrc-current (latest tarfile snapshot - though latest via cvs yields
>> same results)
>>
>> # uname -a
>> SunOS webtest2 5.10 Generic_142901-11 i86pc i386 i86pc
>>
>> # isainfo -k
>> amd64
>>
>> # pkg_info |grep apache
>> apache-2.2.15nb2    Apache HTTP (Web) server, version 2.2
>>
>> # which httpd
>> /opt/pkg/sbin/httpd
>>
>> # httpd -V
>> Server version: Apache/2.2.15 (Unix)
>> Server built:   Jun 19 2010 22:33:09
>> Server's Module Magic Number: 20051115:24
>> Server loaded:  APR 1.3.9, APR-Util 1.3.9
>> Compiled using: APR 1.3.9, APR-Util 1.3.9
>> Architecture:   32-bit
>> Server MPM:     Prefork
>>  threaded:     no
>>    forked:     yes (variable process count)
>> Server compiled with....
>> -D APACHE_MPM_DIR="server/mpm/prefork"
>> -D APR_HAS_SENDFILE
>> -D APR_HAS_MMAP
>> -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
>> -D APR_USE_FCNTL_SERIALIZE
>> -D APR_USE_PTHREAD_SERIALIZE
>> -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
>> -D APR_HAS_OTHER_CHILD
>> -D AP_HAVE_RELIABLE_PIPED_LOGS
>> -D DYNAMIC_MODULE_LIMIT=128
>> -D HTTPD_ROOT="/opt/pkg"
>> -D SUEXEC_BIN="/opt/pkg/bin/suexec"
>> -D DEFAULT_PIDLOG="var/run/httpd.pid"
>> -D DEFAULT_SCOREBOARD="var/run/apache_runtime_status"
>> -D DEFAULT_LOCKFILE="var/run/accept.lock"
>> -D DEFAULT_ERRORLOG="var/log/httpd/error.log"
>> -D AP_TYPES_CONFIG_FILE="etc/httpd/mime.types"
>> -D SERVER_CONFIG_FILE="etc/httpd/httpd.conf"
>>
>> # ldd /opt/pkg/sbin/httpd
>>        libm.so.2 =>     /lib/libm.so.2
>>        libaprutil-1.so.0 =>     /opt/pkg/lib/libaprutil-1.so.0
>>        libexpat.so.1 =>         /opt/pkg/lib/libexpat.so.1
>>        libiconv.so.2 =>         /opt/pkg/lib/libiconv.so.2
>>        libapr-1.so.0 =>         /opt/pkg/lib/libapr-1.so.0
>>        libnsl.so.1 =>   /lib/libnsl.so.1
>>        libuuid.so.1 =>  /lib/libuuid.so.1
>>        libsendfile.so.1 =>      /lib/libsendfile.so.1
>>        librt.so.1 =>    /lib/librt.so.1
>>        libsocket.so.1 =>        /lib/libsocket.so.1
>>        libpthread.so.1 =>       /lib/libpthread.so.1
>>        libc.so.1 =>     /lib/libc.so.1
>>        libgcc_s.so.1 =>         /usr/sfw/lib/libgcc_s.so.1
>>        libmp.so.2 =>    /lib/libmp.so.2
>>        libmd.so.1 =>    /lib/libmd.so.1
>>        libscf.so.1 =>   /lib/libscf.so.1
>>        libaio.so.1 =>   /lib/libaio.so.1
>>        libdoor.so.1 =>  /lib/libdoor.so.1
>>        libuutil.so.1 =>         /lib/libuutil.so.1
>>        libgen.so.1 =>   /lib/libgen.so.1
>>
>> # httpd
>> Segmentation Fault (core dumped)
>>
>> # pstack core
>> core 'core' of 1938:    httpd
>> fe2ffd55 _init    (fe6d0cf0, feffb28c, feffb818, fe67056c, feff0ad0,
>> fe2ffd40) + 15
>> fefd4c11 call_init (fe670568, 1) + f5
>> fefd5132 load_completion (fe6d0cf0) + de
>> fefd92a3 dlmopen_intn (feffb28c, 8116b60, d02, fefc04b8, 0, 0) + 103
>> fefd938a dlmopen_check (feffb28c, 8116b60, d02, fefc04b8, 8047544) + c6
>> fefd945c dlopen   (8116b60, 102, 8047578, fedbc6ee, feb857ee, 8047a80) + 48
>> fedbdfc7 apr_dso_load (80476cc, 8116b60, 80c96b0, 80679b4) + 22
>> 0809425d load_module (8047a40, 80478b8, 8116b38, 8116b48) + 227
>> 08081dc2 invoke_cmd (80a8b40, 8047a40, 80478b8, 81017c2) + 2cd
>> 080831ed execute_now (8116ad8, 81017a3, 8047a40, 80c96b0, 80f9770,
>> 80478b8) + 8f
>> 080827d7 ap_build_config_sub (80c96b0, 80f9770, 8101798, 8047a40,
>> 8047914, 8047910) + 175
>> 08082d0f ap_build_config (8047a40, 80c96b0, 80f9770, 80bdd94) + 81
>> 0808366f process_resource_config_nofnmatch (80cf0d0, 80fd260,
>> 80bdd94, 80c96b0, 80f9770, 0) + 2d2
>> 08083768 ap_process_resource_config (80cf0d0, 80fd260, 80bdd94,
>> 80c96b0, 80f9770, 80a080d) + 9d
>> 0808427f ap_read_config (80c7738, 80f9770, 80a080d, 80bdd94) + ec
>> 0806b321 main     (1, 8047cc4, 8047ccc) + 595
>> 0806a414 _start   (1, 8047d88, 0, 8047d8e, 8047da2, 8047dad) + 80
>>
>> # find /opt/pkg/var/log/httpd/
>> /opt/pkg/var/log/httpd/
>>
>> # truss -f httpd
>> 1952:   execve("/opt/pkg/sbin/httpd", 0x08047CC8, 0x08047CD0)  argc = 1
>> 1952:   mmap(0x00000000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC,
>> MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFEFF0000
>> 1952:   resolvepath("/usr/lib/ld.so.1", "/lib/ld.so.1", 1023) = 12
>> 1952:   resolvepath("/opt/pkg/sbin/httpd", "/opt/pkg/sbin/httpd", 1023) = 19
>> 1952:   sysconfig(_CONFIG_PAGESIZE)                     = 4096
>> 1952:   stat64("/opt/pkg/sbin/httpd", 0x08047A60)       = 0
>> 1952:   open("/var/ld/ld.config", O_RDONLY)             Err#2 ENOENT
>> 1952:   stat64("/opt/pkg/lib/libm.so.2", 0x08047300)    Err#2 ENOENT
>> 1952:   stat64("/usr/sfw/lib/libm.so.2", 0x08047300)    Err#2 ENOENT
>> 1952:   stat64("/lib/libm.so.2", 0x08047300)            = 0
>> 1952:   resolvepath("/lib/libm.so.2", "/lib/libm.so.2", 1023) = 14
>> 1952:   open("/lib/libm.so.2", O_RDONLY)                = 3
>> <snip>
>> 1952:   stat64("/lib/libmp.so.2", 0x08046B30)           = 0
>> 1952:   resolvepath("/lib/libmp.so.2", "/lib/libmp.so.2", 1023) = 15
>> 1952:   open("/lib/libmp.so.2", O_RDONLY)               = 4
>> 1952:   mmap(0xFEF00000, 32768, PROT_READ|PROT_EXEC,
>> MAP_PRIVATE|MAP_FIXED, 4, 0) = 0xFEF00000
>> 1952:   mmap(0x00010000, 81920, PROT_NONE,
>> MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFE140000
>> 1952:   mmap(0xFE140000, 9124, PROT_READ|PROT_EXEC,
>> MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 4, 0) = 0xFE140000
>> 1952:   mmap(0xFE153000, 497, PROT_READ|PROT_WRITE,
>> MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 4, 12288) = 0xFE153000
>> 1952:   munmap(0xFE143000, 65536)                       = 0
>> 1952:   memcntl(0xFE140000, 1744, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
>> 1952:   close(4)                                        = 0
>> 1952:   munmap(0xFEF00000, 32768)                       = 0
>> 1952:       Incurred fault #6, FLTBOUNDS  %pc = 0xFE2FFD55
>> 1952:         siginfo: SIGSEGV SEGV_MAPERR addr=0x00000000
>> 1952:       Received signal #11, SIGSEGV [default]
>> 1952:         siginfo: SIGSEGV SEGV_MAPERR addr=0x00000000
>
>


Home | Main Index | Thread Index | Old Index