Closed easterism closed 1 year ago
Does this happen all the time or just occasionally?
The packet was freed twice, as the assertion says, "most likely this is do [sic] to freeing a gearman_task_st or other object twice." I want to say that this problem is due to a bug in the PHP extension, but I don't know for certain.
Are you using the latest version from https://github.com/php/pecl-networking-gearman ? If so, you might want to open an issue there, especially if you can boil it down to something reproducible. Unfortunately, the PHP extension is not very actively maintained, I think, so I'm not sure how much help you might get there.
If you recompile libgearman.so with GEARMAN_PACKET_TRACE
defined, it will output a lot more information about the packet to stderr. That might be helpful.
If you can't fix the PHP extension (assuming that's the problem), you could edit libgearman/packet.cc
and comment out the assertion on lines 252-253 and change line 255 to read
if (gearman_is_allocated(packet) || !(packet->universal))
(or maybe flip that conditional around). But that makes me feel dirty just thinking about it and you should only do that as a last resort. The fix should really be made in the PHP extension, I think.
Does this happen all the time or just occasionally?
just occasionally, i catch this after i checked gearadmin --status
and it stuck (like this https://github.com/gearman/gearmand/issues/68#issuecomment-1245583214)
I use php-gearman Debian package. Looks like its lastest version of pecl-networking-gearman
P.S. new issue https://github.com/php/pecl-networking-gearman/issues/17#issue-1375775689
A PHP extension developer posted their analysis and suggested a potential fix to the PHP extension code here:
https://github.com/php/pecl-networking-gearman/issues/12#issuecomment-1280379848
They agreed that the problem is likely in the PHP extension, so I'm closing this issue.
Nice work @esabol !
I've got error and looks it related to https://github.com/gearman/gearmand/issues/68#issuecomment-1245583214
Could you explain please, what happened