Opened 12 years ago

Closed 12 years ago

Last modified 9 years ago

#78 closed defect (fixed)

VBulletin 500 Error

Reported by: mastermind Owned by: moo
Priority: minor Milestone: 1.2.1
Component: cacher Version: 1.2-dev
Keywords: Cc:
Application: VBulletin 3.6.5 PHP Version: 4.4.5
Other Exts: SAPI: Others
Probability: Blocked By:


VBulletin 3.6.5 using PHP 4.4.5 via php_suexec on Apache 1.3.37 with XCache 1.2 gives a 500 error on the showthread page. The full error in the Apache error_log given is:
Premature end of script headers: /*removed*/showthread.php
The configuration in php.ini is as follows:

;; install as zend extension (recommended), normally "$extension_dir/"
 zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20020429/
; zend_extension_ts = /usr/local/lib/php/extensions/non-debug-zts-xxx/
;; For windows users, replace with php_xcache.dll
;; zend_extension_ts = c:/php/extensions/php_xcache.dll
;; or install as extension, make sure your extension_dir setting is correct
; extension =
;; or win32:
; extension = php_xcache.dll

xcache.admin.user = "mOo"
; xcache.admin.pass = md5($your_password)
xcache.admin.pass = ""

; ini only settings, all the values here is default unless explained

; select low level shm/allocator scheme implemenation
xcache.shm_scheme =        "mmap"
; to disable: xcache.size=0
; to enable : xcache.size=64M etc (any size 0) and your system mmap allows
xcache.size  =                32M
; set to cpu count (cat /proc/cpuinfo |grep -c processor)
xcache.count =                 1
; just a hash hints, you can always store count(items) slots
xcache.slots =                8K
; ttl of the cache item, 0=forever
xcache.ttl   =                 0
; interval of gc scanning expired items, 0=no scan, other values is in seconds
xcache.gc_interval =           360

; same as aboves but for variable cache
xcache.var_size  =            32M
xcache.var_count =             1
xcache.var_slots =            8K
; default ttl
xcache.var_ttl   =             0
xcache.var_maxttl   =          0
xcache.var_gc_interval =     300

xcache.test =                Off
; N/A for /dev/zero
xcache.readonly_protection = Off
; for *nix, xcache.mmap_path is a file path, not directory.
; Use something like "/tmp/xcache" if you want to turn on ReadonlyProtection
; 2 group of php won't share the same /tmp/xcache
; for win32, xcache.mmap_path=anonymous map name, not file path
xcache.mmap_path =    "/dev/zero"

; leave it blank(disabled) or "/tmp/phpcore/"
; make sure it's writable by php (without checking open_basedir)
xcache.coredump_directory =   "/tmp/phpcore/"

; per request settings
xcache.cacher =               On
xcache.stat   =               Off
xcache.optimizer =            On

; per request settings
; enable coverage data collecting for xcache.coveragedump_directory and xcache_coverager_start/stop/get/clean() functions (will hurt executing performance)
xcache.coverager =          Off

; ini only settings
; make sure it's readable (care open_basedir) by coverage viewer script
; requires xcache.coverager=On
xcache.coveragedump_directory = ""

For now we've switched to EAccelerator, but would really like to get back to XCache, after the great experience using lighttpd for static file serving.

Change History (5)

comment:1 Changed 12 years ago by moo

  • Status changed from new to assigned

comment:2 Changed 12 years ago by moo

  • Milestone set to 1.2.1

can u try a bigger xcache.size? like 64M etc

i've manage to reproduce a coredump in #79 with "out of memory", but not sure if it is relative to this ticket

comment:3 Changed 12 years ago by mastermind

It was tested with xcache.size set to 32M, 64M, 128M, and 512M with the same results. There are a handful of very large (180MB) coredump files, but I don't know if they would be useful. EAccelerator also didn't work due to php_suexec running PHP as CGI. APC is currently installed and appears to be working fine.

comment:4 Changed 12 years ago by moo

  • Priority changed from major to minor

CGI is not supported yet by XCache. are you sure APC is caching fine? what if you check apc's admin page, does it show many php files cached there?

i'd like to fix the coredump issue, but i'll drop this ticket as minor.

do u know how to get a backtrace?

$ gdb php-cgi core
gdb> bt

paste (remember to format with {{{ }}}) or attach it here

comment:5 Changed 12 years ago by moo

  • pending set to 0
  • Resolution set to fixed
  • Status changed from assigned to closed

this bug is same as #101 #106 and was fixed

Note: See TracTickets for help on using tickets.