[launchd-dev] Mac OS-X 10.5 and "two icons bouncing in the dock" problem

Hans-Peter Jansen hpj at urpla.net
Fri Aug 14 14:21:18 PDT 2009


Am Freitag, 14. August 2009 schrieb Damien Sorresso:
> On Aug 14, 2009, at 1:31 AM, Hans-Peter Jansen wrote:
> > [Probably, this is the wrong list, but launchd is definitely involved;
> > Any pointer to more appropriate lists are welcome]
> >
> > Hi,
> >
> > attached PyQt script demonstrates an ugly issue, I'm fighting with
> > since a
> > couple of days :-(.
> >
> > Issue:
> > when starting the app via double click or single click on dock icon or
> > dropping a plain/text file on dock or application icon, all actions
> > lead to
> > two bouncing icons.
> >
> > The one with the blue spot is the good one, that stops bouncing after
> > start-up. The bad one will stop bouncing eventually, and shows
> > "Application
> > not responding" in its context menu then. As long as the bad one
> > exists,
> > dropping files on the good one will be ignored. After killing (and
> > sometimes removing from the dock is necessary) all is well - one can
> > drop
> > files one the good one and on the app icon, all behaves well, up to
> > the
> > point of being terminated, then this ugly game starts again.
> >
> > The issue is not depending on the arch, but on OS-X 10.5. It does
> > not happen
> > with 10.4. It may be related to pyinstaller, but since I need to
> > deploy the
> > app on arbitrary 10.4 and later systems, omitting it is not an option.
> >
> > Termination of this process is accompanied with these syslog messages:
> > Aug 13 19:01:26 g5 com.apple.launchd[124]
> > ([0x0-0x130130]..local.LaunchProb[9611]): Stray process with PGID
> > equal to
> > this dead job: PID 9612 PPID 1 LaunchProb
> > Aug 13 19:01:26 g5 com.apple.launchd[124]
> > ([0x0-0x130130]..local.LaunchProb[9611]): Exited: Terminated
> >
> > BTW: pyinstaller does a fork in start up, see
> > pyinstaller/source/linux/main.c around line 120;
> >
> > #ifdef __APPLE__
> >        /* add workpath to DYLD_LIBRARY_PATH */
> >        exportWorkpath(workpath, "DYLD_LIBRARY_PATH");
> > #endif
> >        pid = fork();
> >        if (pid == 0)
> >            execvp(thisfile, argv);
> >        wait(&rc);
> >        rc = WEXITSTATUS(rc);
> >
> >        VS("Back to parent...\n");
> >        if (strcmp(workpath, homepath) != 0)
> >            clear(workpath);
> >
> > It seems to be the culprit, what what could be done to get this
> > working
> > nicely with 10.5, too? Should I set the same pgid on both processes?
> > Any
> > pointer to examples?
> >
> > Pre conditions:
> > OS-X 10.5(.7/.8) with ppc or x86 arch
> > Xcode 3.1.3
> > Python-2.6.2
> > Qt-4.5.2
> > sip-4.8.2
> > PyQt-4.5.4
> >
> > Build it this way:
> >
> > tar xvzf launchprob.tar.gz && cd launchprob && ./build.sh -debug
> >
> > This command will fetch pyinstaller's SVN trunk, build pyinstaller,
> > generate
> > the app itself: LaunchProb.app. It can be moved to any system, as
> > long as
> > all required packages are cleanly built for both archs(*) and the
> > minimum
> > OS-X release is 10.4.
> >
> > Any ideas how to solve this issue are greatly appreciated.
> >
> > Thanks,
> > Pete
> >
> > (*) I can provide more details for this on request
>
> Why is it fork(2)ing and then exiting right away? This really isn't a
> supported way to build applications on Mac OS X. Please use Xcode.

Damien, yes, this looks fishy, and I eliminated the fork completely already. 
Unfortunately, it doesn't change its behavior.

If you have any more ideas, let me know.

Anyway, thanks. 
Pete


More information about the launchd-dev mailing list