(a previous attempt to fix addressed lack, for a long time, of initial
input).
+HS/01 Bug 2390: Use message_id for tempfile creation to avoid races in a
+ shared (NFS) environment. The length of the tempfile name is now
+ 4 + 16 ("hdr.$message_exim_id") which might break on file
+ systems which restrict the file name length to lower values.
+ (It was "hdr.$pid".)
+
Exim version 4.92
-----------------
uschar * tname;
uschar * fname;
-tname = spool_fname(US"input", message_subdir,
- string_sprintf("hdr.%d", (int)getpid()), US"");
+tname = spool_fname(US"input", message_subdir, US"hdr.", message_id);
if ((fd = spool_open_temp(tname)) < 0)
return spool_write_error(where, errmsg, US"open", NULL, NULL);
s/waiting for children of \d+/waiting for children of pppp/;
s/waiting for (\S+) \(\d+\)/waiting for $1 (pppp)/;
- # The spool header file name varies with PID
- s%^(Writing spool header file: .*/hdr).[0-9]{1,5}%$1.pppp%;
-
# ======== Port numbers ========
# Incoming port numbers may vary, but not in daemon startup line.
(envelope-from <CALLER@test.ex>)
id 10HmaX-0005vi-00
for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaX-0005vi-00
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
(envelope-from <CALLER@test.ex>)
id 10HmaX-0005vi-00
for CALLER@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaX-0005vi-00
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
P Received: from CALLER by myhost.test.ex with local-smtp (Exim x.yz)
(envelope-from <x@y>)
id 10HmaX-0005vi-00; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaX-0005vi-00
Renaming spool header file: TESTSUITE/spool//input//10HmaX-0005vi-00-H
Size of headers = sss
LOG: MAIN
(envelope-from <x@y>)
id 10HmaY-0005vi-00
for two@z; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaY-0005vi-00
Renaming spool header file: TESTSUITE/spool//input//10HmaY-0005vi-00-H
Size of headers = sss
LOG: MAIN
P Received: from CALLER by mail.test.ex with local (Exim x.yz)
(envelope-from <CALLER@test.ex>)
id 10HmaX-0005vi-00; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaX-0005vi-00
Renaming spool header file: TESTSUITE/spool//input//10HmaX-0005vi-00-H
Size of headers = sss
LOG: MAIN
P Received: from CALLER by mail.test.ex with local (Exim x.yz)
(envelope-from <CALLER@test.ex>)
id 10HmaY-0005vi-00; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaY-0005vi-00
Renaming spool header file: TESTSUITE/spool//input//10HmaY-0005vi-00-H
Size of headers = sss
LOG: MAIN
(envelope-from <CALLER@test.ex>)
id 10HmaY-0005vi-00
for kilos@recurse.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaY-0005vi-00
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
X-Warning: V4NET.11.12.13 is listed at rbl.test.ex
X-Warning: This is a test blacklisting message
>>
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaX-0005vi-00
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
X-Warning: V4NET.11.12.13 is listed at rbl.test.ex
X-Warning: This is a test blacklisting message
>>
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaY-0005vi-00
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
P Received: from EXIMUSER by myhost.test.ex with local (Exim x.yz)
id 10HmaY-0005vi-00
for CALLER@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaY-0005vi-00
Renaming spool header file: TESTSUITE/spool//input//10HmaY-0005vi-00-H
Size of headers = sss
LOG: MAIN
>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
search_tidyup called
>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaX-0005vi-00
Renaming spool header file: TESTSUITE/spool//input//10HmaX-0005vi-00-H
Size of headers = sss
LOG: MAIN
┌considering: ${tod_full}
├──expanding: ${tod_full}
└─────result: Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaX-0005vi-00
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
(envelope-from <CALLER@test.ex>)
id 10HmaX-0005vi-00
for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaX-0005vi-00
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
(envelope-from <CALLER@test.ex>)
id 10HmaX-0005vi-00
for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaX-0005vi-00
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
>>Generated Received: header line
P Received: from CALLER by mail.test.ex with local (Exim x.yz)
id 10HmaY-0005vi-00; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaY-0005vi-00
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
(envelope-from <CALLER@test.ex>)
id 10HmaX-0005vi-00
for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaX-0005vi-00
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
check verify = header_syntax
accept: condition test succeeded in ACL "check_data"
end of ACL "check_data": ACCEPT
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaY-0005vi-00
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
(envelope-from <CALLER@myhost.test.ex>)
id 10HmaX-0005vi-00
for r1@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaX-0005vi-00
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
(envelope-from <x@y>)
id 10HmaX-0005vi-00
for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaX-0005vi-00
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
(envelope-from <CALLER@myhost.test.ex>)
id 10HmaX-0005vi-00
for X@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaX-0005vi-00
Renaming spool header file: TESTSUITE/spool//input//10HmaX-0005vi-00-H
Size of headers = sss
LOG: MAIN
(envelope-from <CALLER@myhost.test.ex>)
id 10HmaY-0005vi-00
for X@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaY-0005vi-00
Renaming spool header file: TESTSUITE/spool//input//10HmaY-0005vi-00-H
Size of headers = sss
LOG: MAIN
(envelope-from <CALLER@myhost.test.ex>)
id 10HmaZ-0005vi-00
for X@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaZ-0005vi-00
Renaming spool header file: TESTSUITE/spool//input//10HmaZ-0005vi-00-H
Size of headers = sss
LOG: MAIN
(envelope-from <CALLER@myhost.test.ex>)
id 10HmbA-0005vi-00
for X@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmbA-0005vi-00
Renaming spool header file: TESTSUITE/spool//input//10HmbA-0005vi-00-H
Size of headers = sss
LOG: MAIN
(envelope-from <CALLER@myhost.test.ex>)
id 10HmbB-0005vi-00
for X@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmbB-0005vi-00
Renaming spool header file: TESTSUITE/spool//input//10HmbB-0005vi-00-H
Size of headers = sss
LOG: MAIN
(envelope-from <CALLER@myhost.test.ex>)
id 10HmbC-0005vi-00
for X@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmbC-0005vi-00
Renaming spool header file: TESTSUITE/spool//input//10HmbC-0005vi-00-H
Size of headers = sss
LOG: MAIN
(envelope-from <CALLER@myhost.test.ex>)
id 10HmbD-0005vi-00
for X@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmbD-0005vi-00
Renaming spool header file: TESTSUITE/spool//input//10HmbD-0005vi-00-H
Size of headers = sss
LOG: MAIN
(envelope-from <CALLER@myhost.test.ex>)
id 10HmbE-0005vi-00
for X@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmbE-0005vi-00
Renaming spool header file: TESTSUITE/spool//input//10HmbE-0005vi-00-H
Size of headers = sss
LOG: MAIN
(envelope-from <CALLER@test.ex>)
id 10HmaX-0005vi-00
for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaX-0005vi-00
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
(envelope-from <CALLER@test.ex>)
id 10HmaX-0005vi-00
for nofile@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaX-0005vi-00
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
(envelope-from <CALLER@test.ex>)
id 10HmaY-0005vi-00
for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaY-0005vi-00
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
(envelope-from <CALLER@test.ex>)
id 10HmaZ-0005vi-00
for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaZ-0005vi-00
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
closed hints database and lockfile
end of retry processing
delivery deferred: update_spool=1 header_rewritten=0
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaZ-0005vi-00
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
(envelope-from <CALLER@test.ex>)
id 10HmbA-0005vi-00
for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmbA-0005vi-00
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
closed hints database and lockfile
end of retry processing
delivery deferred: update_spool=1 header_rewritten=0
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmbA-0005vi-00
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
(envelope-from <CALLER@test.ex>)
id 10HmaX-0005vi-00
for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaX-0005vi-00
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
┌considering: ${tod_full}
├──expanding: ${tod_full}
└─────result: Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaX-0005vi-00
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0