Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 621990

Summary: dev-php/pecl-gearman-1.1.2 version bump
Product: Gentoo Linux Reporter: Alex Barker <alex>
Component: Current packagesAssignee: No maintainer - Look at https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers if you want to take care of it <maintainer-needed>
Status: RESOLVED WONTFIX    
Severity: normal CC: alex, jstein, treecleaner
Priority: Normal Keywords: PMASKED
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard: Pending removal: 2018-04-13
Package list:
Runtime testing required: ---
Attachments: pecl-gearman-1.1.2.ebuild

Description Alex Barker 2017-06-17 05:39:13 UTC
I have tested a simple rename to pecl-gearman-1.1.2.ebuild and it appears to work.  This fixes several issues with gearmand and addresses #540322.

Reproducible: Always
Comment 1 Alex Barker 2017-06-17 05:50:09 UTC
This does not add support for php-7+ This is currently the most promising repo: https://github.com/wcgallego/pecl-gearman
Comment 2 Alex Barker 2017-07-04 20:53:16 UTC
Created attachment 480812 [details]
pecl-gearman-1.1.2.ebuild

I am successfully compiling 1.1.2 against gearmand-1.1.16 (see bug #540322) and it is partially working.  The issue is with pecl-gearman worker class adding servers and functions.

I am unable to identify the cause:

PHP Warning:  GearmanWorker::addServers(): (null) in ...
PHP Warning:  GearmanWorker::addFunction(): Unable to add function to Gearman Worker: (null) GEARMAN_INVALID_ARGUMENT in ...
Comment 3 Alex Barker 2017-07-06 16:30:30 UTC
(In reply to Alex Barker from comment #2)
> Created attachment 480812 [details]
> pecl-gearman-1.1.2.ebuild
> 
> PHP Warning:  GearmanWorker::addServers(): (null) in ...
> PHP Warning:  GearmanWorker::addFunction(): Unable to add function to
> Gearman Worker: (null) GEARMAN_INVALID_ARGUMENT in ...

The ebuild is working correctly.  The issue I experienced is a bug with the interaction of pthreads and gearman worker.  It seems to soil the pants only if the GearmanWorker class is a member variable of a class that extends Stackable!  I.E. `
```
class MyWorker extends Stackable {
    /** @var GearmanWorker $gearman */
    protected $gearman;

    public function __construct()
    {
        $this->gearman = new GearmanWorker();

        // Poops pants here.
        $this->gearman->addServer("127.0.0.1", 4730);
    }

    ...
}
```
Comment 4 Pacho Ramos gentoo-dev 2018-04-29 18:08:27 UTC
removed