Closed Bug 454881 Opened 13 years ago Closed 7 years ago

Running genpgocert.py hangs in scratchbox

Categories

(Firefox for Android Graveyard :: General, defect)

Other
Maemo
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: christian.bugzilla, Unassigned)

References

Details

(Keywords: mobile)

Attachments

(1 file)

The command below hangs when building in scratchbox and can be fixed by adding "ac_add_options --disable-tests" to the mozconfig.

/scratchbox/tools/bin/python ../../_profile/pgo/genpgocert.py --gen-server
Flags: blocking-fennec1.0+
I think this is a probably with the python installed by default in scratchbox. I fixed this by installing python2.5 and using it instead.
(the default python in scratchbox is 2.3.4)
vlad was talking about this sucking for cross-compile, but I didn't think it was Python that was the problem. See bug 428009 comment 72 and on.
Blocks: 428009
Could very well have been python, esp. for scratchbox -- but the cross-compile issue still stands, since you have no pseudonative environment to fall back on there.
(In reply to comment #1)
> I think this is a probably with the python installed by default in scratchbox.
> I fixed this by installing python2.5 and using it instead.

Do you have some instructions on how to set this up? Just installing python2.5 and making it the default python brings up other issues.
I just installed it, then put a symlink to it earlier in my path than the default. I tried replacing the default outright but ran into trouble with hg, which seems to depend on the default being in its default location. It dealt with the newer version earlier in the path fine, though.
Hey Christian,

When I made the switch I encountered bustage from scratchbox complaining about

sem_post: Function not implemented

Which turns out to be a qemu thing.  There's more information here:

https://garage.maemo.org/pipermail/pymaemo-developers/2008-August/000480.html
Summary: Build hangs unless you specify disable-tests → Build hangs in genpgocert.py unless you specify disable-tests
We support Python 2.3. We should figure out why it's hanging and fix that instead. This might be a problem with scratchbox's Python, since I'm pretty sure there are people building with Python 2.3 on the desktop. See bug 456134 for example.
It's hanging in automation.py:_run(self) looping around with running() never returning 0. This happens when we call:

runUtil(certutil, ["-N", "-d", dbDir, "-f", pwfilePath])

- running() calls p.poll()
- poll() calls waitpid() which throws os.error because it is called from a process with no children.
- the os.error is discarded and so we never find out about this failure

This is an example process tree:
─python(7105)─┬─certutil(7106)
              └─python(7107)───python(7109)

waitpid() is being called from 7109 which clearly will not work.

I'm not sure why this problem occurs in scratchbox and not in other environments...
Comment 0 should be addressed by bug 459699, but comment 10 describes a problem with running certutil as part of automation.py. I don't know if you'd like to morph this bug to cover that problem, or file a new bug on it. Jeff: was that from running mochitest in scratchbox? Do we need to support that configuration? (since you're running tests in an emulated environment, seems bogus.)
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Didn't mean to resolve this, but you can reopen per my last comment if you so desire.
I never tried to run mochitest in scratchbox, the hang was only from the build which should be solved now. I've reopened the bug (and changed the title) as I expect genpgocert.py still hangs in scratchbox for the reason I described above.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Summary: Build hangs in genpgocert.py unless you specify disable-tests → Running genpgocert.py hangs in scratchbox
You should never have to run genpgocert.py in scratchbox now. It will only be run when a developer wants to update the checked-in certificate databases, which the developer should do on a normal development system (not scratchbox). This bug should be fixed, unless you can explain otherwise.

Also, re: "I never tried to run mochitest in scratchbox", I was confused by your mention of automation.py, as that's only used in mochitest, not genpgocert.
automation.py is used by genpgocert (see line 80 of genpgocert.py) and is still broken under scratchbox. Whether it is run during build or not doesn't really change that, so I think the bug should stay open.

Perhaps a python version check should be added to automation.py? Now, that it isn't used during the build it might be more acceptable? It will at least keep people from running into this problem again in the future...
Ah, ok. I totally missed that. (I'm not sure how.) automation.py is still used in Mochitest, but clint has it working on the device, so I don't think that's a big problem. We could put a version check in genpgocert.py, since that's not an integral part of the build or test process.

We can certainly leave this bug open for a better fix, although it's unlikely that we'll ever make genpgocert actually *work* under scratchbox. (The benefits seem negligible.) Regardless, this should no longer be blocking Fennec 1.0.
That sounds good to me.
Flags: blocking-fennec1.0+
This bug has been buried in the graveyard and has not been updated in over 5 years. It is probably safe to assume that it will never be fixed, so resolving as WONTFIX.

[Mass-change filter: graveyard-wontfix-2014-09-24]
Status: REOPENED → RESOLVED
Closed: 13 years ago7 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.