Как устранить ошибку semop?

Как устранить ошибку semop?

Используя 2.6.30-gentoo-r4Linux, выполняется очень сложная система phpкода (с 4.4.9-pl0-gentoo и 5.2.10-pl0-gentoo), которая время от времени сталкивается с проблемой блокировки семафора. Вызов функции phpблокируется sem_acquire, что в конечном итоге приводит систему к сбою.

Однако этот семафор, о котором идет речь, похоже, не заблокирован другим phpпроцессом, что побудило меня к дальнейшему исследованию. Мне удалось идентифицировать phpрассматриваемый процесс и straceего, что привело к блокирующему семафору:

....
09:03:25 gettimeofday({1415696605, 778078}, NULL) = 0
09:03:25 close(5)                       = 0
09:03:25 gettimeofday({1415696605, 778483}, NULL) = 0
09:03:25 gettimeofday({1415696605, 778708}, NULL) = 0
09:03:25 semop(0, 0xbf8f1692, 1 <unfinished ...>

Этот конкретный вывод semop(0, 0xbf8f1692, 1)не очень мне помогает, так как я не могу увидеть содержимое struct sembuf(второй аргумент semop). Может быть, кто-то еще видит проблему непосредственно с этим semopвызовом?

В любом случае, я продолжил расследование, чтобы проверить память по адресу 0xbf8f1692(как root):

> gdb --pid 1236   
GNU gdb 6.8
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i586-pc-linux-gnu".
Attaching to process 1236
ptrace: Operation not permitted.
(gdb) dump memory /root/output 0xbf8f1692 0xbf9f1692 
(gdb) quit
> hexdump -C output 
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00100000

Означает ли это, что semopвызывается с struct sembufуказанием на кучу нулей? Или я что-то сделал неправильно, чтобы узнать память, чтобы увидеть, какие аргументы semop? Есть ли другие способы увидеть, что происходит в этом semopвызове?

Дополнительная информация:

Связанный контент