PHP + mhash i s detmi

Ferdinand Prantl Ferdinand.Prantl na ff.cuni.cz
Čtvrtek Únor 24 12:54:28 CET 2000


Ahoj,

  chtěl jsem do PHP přidat hashovací funkci, ale pokud slinkuju PHP
  s libmhash, Apache nenastartuje, httpd skončí bez hlášky. Jediné,
  co z něj vystoupí je oznámení startu SSL v ssl_engine_log, jinak
  nezaloguje nic, ani do syslogu. Bez mhash je vše v pohodě.

  Tak pokračuju, přidal jsem do strace -f a vylouplo se SIGSEGV.

    Apache 1.3.9
      mm 1.0.8
    mod_czech 1.3.4-3.1.0b4
    mod_jserv 1.1b2
    mod_perl 1.21
    mod_ssl 2.4.2
      openssl 0.9.4
    mod_php 3.0.14
      mhash 0.6.1
      gdbm 1.8.0
      zlib 1.1.3
      imap 4.5
      cdb 0.55
      expat 1.0
      gd 1.5
      msql, mysql, pgsql
      
  Stejně mě nenapadá, proč po čtení ini-souboru klekne.
  Parametr -X jsem zkusil, výstup strace je stejný, jen se na konsoli
  vypíše "Segmentation fault".
  
----------------------------------------------------------------------------------------------------
9394  execve("../../apache/bin/httpd", ["../../apache/bin/httpd"], [/* 28 vars */]) = 0
9394  brk(0)                            = 0x804c268
9394  open("/etc/ld.so.preload", O_RDONLY) = 8
9394  fstat(8, {st_mode=S_IFREG|0644, st_size=21, ...}) = 0
9394  old_mmap(NULL, 21, PROT_READ|PROT_WRITE, MAP_PRIVATE, 8, 0) = 0x40014000
9394  close(8)                          = 0
9394  munmap(0x40014000, 21)            = 0
9394  open("/usr/local/src/gd-1.5/i586/mmx/libMagick.so.4", O_RDONLY) = -1 ENOENT (No such file or directory)
9394  stat("/usr/local/src/gd-1.5/i586/mmx", 0xbffff3a4) = -1 ENOENT (No such file or directory)

... [snip] ...

9396  open("/usr/local/src/gd-1.5/libmysqlclient.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
9396  open("/usr/local/mysql/lib/mysql/libmysqlclient.so.6", O_RDONLY) = 10
9396  fstat(10, {st_mode=S_IFREG|0755, st_size=98044, ...}) = 0
9396  read(10, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0G\0\000"..., 4096) = 4096
9396  old_mmap(NULL, 81088, PROT_READ|PROT_EXEC, MAP_PRIVATE, 10, 0) = 0x408f2000
9396  mprotect(0x40904000, 7360, PROT_NONE) = 0
9396  old_mmap(0x40904000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 10, 0x11000) = 0x40904000
9396  close(10)                         = 0
9396  open("/usr/local/src/gd-1.5/libmhash.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
9396  open("/usr/local/mysql/lib/mysql/libmhash.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
9396  open("/usr/local/msql/lib/libmhash.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
9396  open("/usr/local/pgsql/lib/libmhash.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
9396  open("/usr/local/src/php-3.0.14/../expat-1.0/lib/libmhash.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
9396  open("/usr/local/src/php-3.0.14/../cdb-0.55/lib/libmhash.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
9396  open("/usr/local/lib/libmhash.so.1", O_RDONLY) = 10
9396  fstat(10, {st_mode=S_IFREG|0755, st_size=67361, ...}) = 0
9396  read(10, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0\25\0"..., 4096) = 4096
9396  old_mmap(NULL, 74592, PROT_READ|PROT_EXEC, MAP_PRIVATE, 10, 0) = 0x4091c000
9396  mprotect(0x4092a000, 17248, PROT_NONE) = 0
9396  old_mmap(0x4092a000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 10, 0xd000) = 0x4092a000
9396  old_mmap(0x4092d000, 4960, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4092d000
9396  close(10)                         = 0
9396  open("/usr/local/src/gd-1.5/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
9396  open("/usr/local/mysql/lib/mysql/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
9396  open("/usr/local/msql/lib/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
9396  open("/usr/local/pgsql/lib/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
9396  open("/usr/local/src/php-3.0.14/../expat-1.0/lib/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
9396  open("/usr/local/src/php-3.0.14/../cdb-0.55/lib/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
9396  open("/usr/local/lib/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
9396  open("/usr/local/src/gd-1.5/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
9396  open("/usr/X11R6/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
9396  open("/usr/local/pgsql-6.5.3/lib/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
9396  open("/usr/local/apache-1.3.9/libexec/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
9396  open("/etc/ld.so.cache", O_RDONLY) = 10
9396  fstat(10, {st_mode=S_IFREG|0644, st_size=16196, ...}) = 0
9396  old_mmap(NULL, 16196, PROT_READ, MAP_PRIVATE, 10, 0) = 0x40906000
9396  close(10)                         = 0
9396  open("/lib/libpthread.so.0", O_RDONLY) = 10
9396  fstat(10, {st_mode=S_IFREG|0644, st_size=85895, ...}) = 0
9396  read(10, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200?\0"..., 4096) = 4096
9396  old_mmap(NULL, 73816, PROT_READ|PROT_EXEC, MAP_PRIVATE, 10, 0) = 0x4095f000
9396  mprotect(0x4096a000, 28760, PROT_NONE) = 0
9396  old_mmap(0x4096a000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 10, 0xa000) = 0x4096a000
9396  old_mmap(0x40971000, 88, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40971000
9396  close(10)                         = 0
9396  mprotect(0x40717000, 1495040, PROT_READ|PROT_WRITE) = 0
9396  mprotect(0x40717000, 1495040, PROT_READ|PROT_EXEC) = 0
9396  getpid()                          = 9396
9396  getrlimit(RLIMIT_STACK, {rlim_cur=2040*1024, rlim_max=RLIM_INFINITY}) = 0
9396  uname({sys="Linux", node="ferda", ...}) = 0
9396  rt_sigaction(SIGRT_0, {0x40966870, [], 0x4000000}, NULL, 8) = 0
9396  rt_sigaction(SIGRT_1, {0x40966908, [], 0x4000000}, NULL, 8) = 0
9396  rt_sigaction(SIGRT_2, {0x40966a08, [], 0x4000000}, NULL, 8) = 0
9396  rt_sigprocmask(SIG_BLOCK, [RT_0], NULL, 8) = 0
9396  munmap(0x40906000, 16196)         = 0
9396  open("./php3.ini", O_RDONLY)      = -1 ENOENT (No such file or directory)
9396  open("/php3.ini", O_RDONLY)       = -1 ENOENT (No such file or directory)
9396  open("/usr/local/php-3.0.14/php3.ini", O_RDONLY) = 10
9396  ioctl(10, TCGETS, 0xbfffc6b8)     = -1 ENOTTY (Inappropriate ioctl for device)
9396  read(10, "[PHP_3]\n\n;;;;;;;;;;;;;;;;;;;\n; A"..., 8192) = 8192
9396  read(10, "msql.max_links\t\t\t=\t-1\t; maximum "..., 8192) = 3468
9396  read(10, "", 4724)                = 0
9396  read(10, "", 8192)                = 0
9396  ioctl(10, TCGETS, 0xbfffc678)     = -1 ENOTTY (Inappropriate ioctl for device)
9396  --- SIGSEGV (Segmentation fault) ---
----------------------------------------------------------------------------------------------------

  díky za tipy,

    Ferda Prantl

-- 

   "Jen ve svych snech jsme svobodni. Po zbytek zivota potrebujeme penize."
---------------------------------------------------------------------------
Ferdinand Prantl
LVT FF UK
e-mail: prantl na ff.cuni.cz
www: http://www.ff.cuni.cz/~prantl
ICQ: 36302930

----- End forwarded message -----

-- 

   "Jen ve svych snech jsme svobodni. Po zbytek zivota potrebujeme penize."
---------------------------------------------------------------------------
Ferdinand Prantl
LVT FF UK
e-mail: prantl na ff.cuni.cz
www: http://www.ff.cuni.cz/~prantl
ICQ: 36302930


Další informace o konferenci Linux