|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2017-01-10 08:25 UTC] kalle@php.net
-Status: Open
+Status: Suspended
[2017-01-10 08:25 UTC] kalle@php.net
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Oct 29 05:00:01 2025 UTC |
Description: ------------ We have been noticed that our PHP gearman daemon periodically fails with segmentation fault. Yesterday it started to fail on each task coming from queue. Fault appears somewhere in GearmanWorker::work() function. Core analysis says: Program terminated with signal 11, Segmentation fault. [New process 88489 ] #0 gearman_real_malloc (allocator=@0x858, size=342, func=0xffff80ffb8d4411f "receiving", file=0xffff80ffb8d45c34 "libgearman/connection.cc", line=1037) at libgearman/allocator.cc:52 52 if (allocator.malloc) After increasing worker timeout from 10ms to 1000ms problem was gone. Why 10ms? This is default hardcoded timeout in composer package sinergi/gearman. Reproduced in: PHP 5.4.42 + gearman 1.1.2 PHP 5.6.6 + gearman 1.1.2 Expected result: ---------------- At least an exception throwed from library if timeout is too low to process jobs Actual result: -------------- Segmentation fault Program terminated with signal 11, Segmentation fault. [New process 88489 ] #0 gearman_real_malloc (allocator=@0x858, size=342, func=0xffff80ffb8d4411f "receiving", file=0xffff80ffb8d45c34 "libgearman/connection.cc", line=1037) at libgearman/allocator.cc:52 52 if (allocator.malloc)