qa.debian.org popcon graphs broken (server-side fork failed: Resource temporarily unavailable)

John Scott <[email protected]> Fri, 10 Apr 2026 05:27:01 +0000
Newsgroups gmane.linux.debian.devel.quality-assurance
Message-ID <[email protected]>
--=-cVDgnkHl2jCi4zNfb3AU
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Ahoy,
On pages such as https://qa.debian.org/popcon.php?package=3Dbash the graphs=
 of popcon data are no longer loading. One can see the following using curl=
:

$ curl -L 'https://qa.debian.org/cgi-bin/popcon-png?packages=3Dbase-files&s=
how_installed=3Doff'
<h1>Software error:</h1>
<pre>open2: fork failed: Resource temporarily unavailable at /srv/qa.debian=
.org/cgi-bin/popcon-png line 181.
</pre>
<p>
For help, please send mail to the webmaster (<a href=3D"mailto:debian-qa@li=
sts.debian.org">[email protected]</a>), giving this error message=
=20
and the time and date of the error.

</p>

The time and date is approximately 2026-04-10T05:00+00:00 (ISO 8601).

The source code it's referring to is https://salsa.debian.org/qa/qa/-/blob/=
master/cgi-bin/popcon-png#L181
> # spawn gnuplot and read output back
> my $pid =3D open2(\*CHLD_OUT, \*CHLD_IN, 'gnuplot', '-');
Then a loop follows of copying Gnuplot's stdout to the stdout of this CGI s=
cript:
> while (<CHLD_OUT>) {
> print $_;
> }
(Hmm, why not just exec() Gnuplot instead of reading its stdout just to pri=
nt it verbatim again? Is that not as easy in Perl?)

Random thought from someone who doesn't know Perl: is it possible that proc=
esses are getting into a deadlock, and the CGI script is waiting forever tr=
ying to read from Gnuplot and hoarding a file descriptor each time? At http=
s://perldoc.perl.org/IPC::Open2 there are several warnings and gotchas. Or =
maybe some other process is consuming those resources, but because Apache i=
tself appears to be working, this CGI script itself is probably hitting a m=
ore restrictive resource limit.

--=-cVDgnkHl2jCi4zNfb3AU
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----

iPsEABYKAKMWIQSiPzylvTnZ6xisfzWz9N0oYfTNugUCadiKHXIYaHR0cHM6Ly9q
b2huc2NvdHQubWUvLndlbGwta25vd24vbmkvc2hhLTI1Ni9zWUF3OTN6QUVrRkIy
RDREM1hOemRSeHEyMFBjNnByZGdtbEVWeXo0QUZRP2N0PWFwcGxpY2F0aW9uJTJG
cGdwLWtleXMSHGpzY290dEBwb3N0ZW8ubmV0AAoJELP03Shh9M2692EA/jDVrab8
nKmuQsYqnizhnqI13STuUM3j/SdKxmwYW72QAQC2gEzDxw9D8oJdTIDZtCIMEUlF
Vz2WAvTrqxh6hRmRCQ==
=EC0u
-----END PGP SIGNATURE-----

--=-cVDgnkHl2jCi4zNfb3AU--