https://bz.apache.org/SpamAssassin/show_bug.cgi?id=8253

            Bug ID: 8253
           Summary: t/spamd_client.t failure on low memory machines
           Product: Spamassassin
           Version: SVN Trunk (Latest Devel Version)
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Regression Tests
          Assignee: dev@spamassassin.apache.org
          Reporter: sid...@sidney.com
  Target Milestone: Undefined

There are a number of test failures of t/spamd_client.t showing up on CPAN
linux/unix test machines. with the symptom being the test failing after ok 4
with a "error reading from spamd (10): Connection reset by peer" message.

I have been able to reproduce the error by running on a VM with limited
resources, specifically 1000MB RAM and 1 core. Increasing either the RAM to
2000MB or giving the VM another core makes the failure go away.

Digging into it, it seems that a child process of spamd runs out of memory. If
the OOM process catches and kills the process before perl gets an out of memory
trap, then the t/spamd_client.t test still succeeds. What happens most of the
time is that perl traps while the client is waiting for a tcp response which
times out, resulting in "connection reset by peer". 

I found that if in t/spamd_cient.t I move the start_spamd calls to after the
creation of a new client_obj, but before the client_obj is used to call spamd,
the  failure goes away unless I reduce the memory to barely over the threshold
where the machine can't boot.

That's an empirical fix, but it does make gratuitous test failures disappear.
I'm going to make that change to the test, and also add a message at the start
of the test that 'Connection reset by peer' failure may be symptomatic of low
memory on the test machine.

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to