LINUX.ORG.RU
ФорумAdmin

После обновления debian с 6 на 7 начал сегфолтиться php в определенных случаях


0

1

Вот, к примеру, с пакетом php идёт скрипт для удаления старых сессий, maxlifetime, который по сути выполняет следующее:

php5 -c /etc/php5/apache2/php.ini -d "error_reporting='~E_ALL'" -r 'print ini_get("session.gc_maxlifetime");'

И в результате имею:

1440Segmentation fault

# dmesg | tail -n1
[1175133.125914] php5[18398]: segfault at 7f912d132ed7 ip 00007f912d132ed7 sp 00007f912c5f9cc0 error 14 in libstdc++.so.6.0.17[7f91303c1000+e8000]

Есть идеи что может быть? В других случаях вроде тоже падало раз или два, но не критично.

strace ничего определенного не кажет:

...
lseek(0, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 3), ...}) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 3), ...}) = 0
lseek(1, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
fstat(2, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 3), ...}) = 0
fstat(2, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 3), ...}) = 0
lseek(2, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
write(1, "1440", 41440)                     = 4
close(2)                                = 0
close(1)                                = 0
close(0)                                = 0
munmap(0x7fb69f423000, 4096)            = 0
munmap(0x7fb694421000, 2170688)         = 0
munmap(0x7fb6941f8000, 2262152)         = 0
munmap(0x7fb694d87000, 2112632)         = 0
munmap(0x7fb694b56000, 2296912)         = 0
munmap(0x7fb694836000, 3274976)         = 0
munmap(0x7fb694633000, 2105608)         = 0
munmap(0x7fb694f8b000, 2130408)         = 0
munmap(0x7fb695194000, 2237792)         = 0
munmap(0x7fb6958fe000, 2150792)         = 0
munmap(0x7fb6953b7000, 5533328)         = 0
munmap(0x7fb695d42000, 2182656)         = 0
munmap(0x7fb695b0c000, 2316512)         = 0
munmap(0x7fb695f57000, 2199000)         = 0
munmap(0x7fb6965ab000, 2138408)         = 0
munmap(0x7fb696379000, 2300608)         = 0
munmap(0x7fb696170000, 2132440)         = 0
munmap(0x7fb697995000, 2154736)         = 0
munmap(0x7fb697529000, 2427560)         = 0
munmap(0x7fb69777a000, 2204624)         = 0
munmap(0x7fb69731a000, 2154920)         = 0
munmap(0x7fb69705a000, 2882728)         = 0
munmap(0x7fb696ddc000, 2612480)         = 0
munmap(0x7fb696bcb000, 2163624)         = 0
munmap(0x7fb6969b9000, 2168144)         = 0
munmap(0x7fb6967b6000, 2109384)         = 0
munmap(0x7fb699571000, 2298672)         = 0
munmap(0x7fb69f25e000, 53368)           = 0
munmap(0x7fb6993a3000, 1891788)         = 0
munmap(0x7fb699232000, 1509248)         = 0
munmap(0x7fb6980c1000, 18284572)        = 0
munmap(0x7fb69b0c0000, 2199768)         = 0
munmap(0x7fb69ae78000, 2391144)         = 0
munmap(0x7fb69a68d000, 2164472)         = 0
munmap(0x7fb69a89e000, 3386704)         = 0
munmap(0x7fb69a466000, 2253856)         = 0
munmap(0x7fb69a22c000, 2334368)         = 0
munmap(0x7fb699ff5000, 2321544)         = 0
munmap(0x7fb69abd9000, 2746008)         = 0
munmap(0x7fb699dd5000, 2225040)         = 0
munmap(0x7fb699bab000, 2265192)         = 0
munmap(0x7fb6999a8000, 2106104)         = 0
munmap(0x7fb6997a3000, 2115840)         = 0
munmap(0x7fb69b50a000, 2209040)         = 0
munmap(0x7fb693dde000, 266240)          = 0
munmap(0x7fb69b2da000, 2292144)         = 0
munmap(0x7fb69ba0b000, 1052672)         = 0
munmap(0x7fb69f26c000, 266240)          = 0
munmap(0x7fb69b726000, 323584)          = 0
exit_group(0)                           = ?

Точно все пакеты обновились успешно? libstdc++6 какой версии? php.ini обновлял вместе с версией PHP?

Все серверы на wheezy, нигде нет такой проблемы.

frozen_twilight ★★
()
Ответ на: комментарий от frozen_twilight

Да, всё обновилось как по нотам.

# dpkg -l | grep -i libstdc
ii  libstdc++6:amd64                      4.7.2-5                       amd64        GNU Standard C++ Library v3
php.ini обновил новой версией и внес нужные правки стандартные (размеры аплоада, памяти, время исполнения, таймзона и т.п.)

Да, у меня несколько других серверов тоже не имеют никаких косяков в т.ч. тестовый который обновлял перед боевыми для проверки.

А тут вот такая петрушка вылезла, не знаю, может переставить эти пакеты, но пока он в бою.

blind_oracle ★★★★★
() автор топика

И в результате имею:

Это если вручную выполнять (весь скрипт/только команду получения session.gc_maxlifetime)?

frozen_twilight ★★
()
Ответ на: комментарий от frozen_twilight

И то и то, без разницы. Падает именно на команде получения лайфтайма.

Сейчас грохнул apt cache, сделал --reinstall libstdc и всем пакетам php5* - ничего не изменилось.

blind_oracle ★★★★★
() автор топика
Ответ на: комментарий от blind_oracle

багу поймал кажися, репортить надо, кажися.
попробуй в кач-ве хотфикса накататить похапэ откуда-нибудь еще (например с дотдеба) версии посвежее.

tazhate ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.