I get a program crash each time running the following code on
MacOS 10.8 (Lion). It seems to run ok on Ubuntu 12.04:
import core.sys.posix.sys.stat;
import core.sys.posix.unistd;
import std.c.stdio;
import std.c.stdlib;
import std.process;
import std.stdio;
import std.string;
import std.file;
int main(string[] args)
{
pid_t pid, sid;
pid = fork();
if (pid < 0)
{
exit(EXIT_FAILURE);
}
if (pid > 0)
{
exit(EXIT_SUCCESS);
}
umask(0);
sid = setsid();
if (sid < 0)
{
exit(EXIT_FAILURE);
}
if ((core.sys.posix.unistd.chdir("/")) < 0)
{
exit(EXIT_FAILURE);
}
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);
auto logFile = File("/home/gary/Desktop/test.log", "a");
logFile.writeln("Reading file");
string command = format("logger -t %s %s", "hello", "This is
a test");
executeShell(command);
logFile.writeln("Done");
return 0;
}
Crash log:
Process: main [1091]
Path: /private/tmp/*/main
Identifier: main
Version: 0
Code Type: X86-64 (Native)
Parent Process: ??? [1]
User ID: 501
Date/Time: 2013-06-13 18:34:59.413 +0100
OS Version: Mac OS X 10.8.4 (12E55)
Report Version: 10
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x000000010f70cb08
VM Regions Near 0x10f70cb08:
--> __TEXT 000000010f6ea000-000000010f7a9000 [
764K] r-x/rwx SM=COW /tmp/*
__DATA 000000010f7a9000-000000010f813000 [
424K] rw-/rwx SM=COW /tmp/*
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 main 0x000000010f795e94
D3std5stdio4File6detachMFZv + 32
1 main 0x000000010f795b91
D3std5stdio4File6__dtorMFZv + 13
2 main 0x000000010f796999
D3std5stdio4File7ByChunk11__fieldDtorMFZv + 13
3 main 0x000000010f6ec172
D3std7process133__T11executeImplS108_D3std7process9pipeShellFNfAyaE3std7process8RedirectxHAyaAyaE3std7process6ConfigZS3std7process12ProcessPipesTAyaZ11executeImplFAyaxHAyaAyaE3std7process6ConfigmZS3std7process133__T11executeImplS108_D3std7process9pipeShellFNfAyaE3std7process8RedirectxHAyaAyaE3std7process6ConfigZS3std7process12ProcessPipesTAyaZ11executeImplFAyaxHAyaAyaE3std7process6ConfigmZ13ProcessOutput
+ 466
4 main 0x000000010f78fd39
D3std7process12executeShellFNeAyaxHAyaAyaE3std7process6ConfigmZS3std7process133__T11executeImplS108_D3std7process9pipeShellFNfAyaE3std7process8RedirectxHAyaAyaE3std7process6ConfigZS3std7process12ProcessPipesTAyaZ11executeImplFAyaxHAyaAyaE3std7process6ConfigmZ13ProcessOutput
+ 49
5 main 0x000000010f6eb279 _Dmain +
317
6 main 0x000000010f76b759
D2rt6dmain211_d_run_mainUiPPaPUAAaZiZi7runMainMFZv + 33
7 main 0x000000010f76b2a5
D2rt6dmain211_d_run_mainUiPPaPUAAaZiZi7tryExecMFMDFZvZv + 45
8 main 0x000000010f76b7a5
D2rt6dmain211_d_run_mainUiPPaPUAAaZiZi6runAllMFZv + 61
9 main 0x000000010f76b2a5
D2rt6dmain211_d_run_mainUiPPaPUAAaZiZi7tryExecMFMDFZvZv + 45
10 main 0x000000010f76b259
_d_run_main + 457
11 main 0x000000010f76b088 main + 20
12 libdyld.dylib 0x00007fff8d8147e1 start + 1
Thread 0 crashed with X86 Thread State (64-bit):
rax: 0x000000010f70cb00 rbx: 0x000000010f6ec166 rcx:
0x000000010f70cb08 rdx: 0x00007fa32b403bd0
rdi: 0x00007fff50515680 rsi: 0x0000000000000030 rbp:
0x00007fff50514d20 rsp: 0x00007fff50514d10
r8: 0x000000010f8110f0 r9: 0x000000010f8123e0 r10:
0x00000000000003b0 r11: 0x0000000000000206
r12: 0x00007fa32b4039a0 r13: 0x00007fa32b4039c0 r14:
0x0000000000000002 r15: 0x0000000000000001
rip: 0x000000010f795e94 rfl: 0x0000000000010206 cr2:
0x000000010f70cb08
Logical CPU: 1
Binary Images:
0x10f6ea000 - 0x10f7a8ff7 +main (0)
<E2E209E1-8709-3E23-9D99-C6001D1DB254> /tmp/*/main
0x7fff6f2ea000 - 0x7fff6f31e93f dyld (210.2.3)
<6900F2BA-DB48-3B78-B668-58FC0CF6BCB8> /usr/lib/dyld
0x7fff8c796000 - 0x7fff8c7bbff7 libc++abi.dylib (26)
<D86169F3-9F31-377A-9AF3-DB17142052E4> /usr/lib/libc++abi.dylib
0x7fff8c9a2000 - 0x7fff8c9a8ff7 libunwind.dylib (35.1)
<21703D36-2DAB-3D8B-8442-EAAB23C060D3>
/usr/lib/system/libunwind.dylib
0x7fff8cb46000 - 0x7fff8cb7cfff libsystem_info.dylib
(406.17) <4FFCA242-7F04-365F-87A6-D4EFB89503C1>
/usr/lib/system/libsystem_info.dylib
0x7fff8d812000 - 0x7fff8d815ff7 libdyld.dylib (210.2.3)
<F59367C9-C110-382B-A695-9035A6DD387E>
/usr/lib/system/libdyld.dylib
0x7fff8db35000 - 0x7fff8db3bfff libmacho.dylib (829)
<BF332AD9-E89F-387E-92A4-6E1AB74BD4D9>
/usr/lib/system/libmacho.dylib
0x7fff8dc48000 - 0x7fff8dc4dfff libcache.dylib (57)
<65187C6E-3FBF-3EB8-A1AA-389445E2984D>
/usr/lib/system/libcache.dylib
0x7fff8e2cd000 - 0x7fff8e2cfff7 libunc.dylib (25)
<92805328-CD36-34FF-9436-571AB0485072>
/usr/lib/system/libunc.dylib
0x7fff8ea69000 - 0x7fff8ea6afff libsystem_blocks.dylib
(59) <D92DCBC3-541C-37BD-AADE-ACC75A0C59C8>
/usr/lib/system/libsystem_blocks.dylib
0x7fff8ea6b000 - 0x7fff8ea6cff7 libdnsinfo.dylib
(453.19) <14202FFB-C3CA-3FCC-94B0-14611BF8692D>
/usr/lib/system/libdnsinfo.dylib
0x7fff8f414000 - 0x7fff8f41cff7 libsystem_dnssd.dylib
(379.38.1) <BDCB8566-0189-34C0-9634-35ABD3EFE25B>
/usr/lib/system/libsystem_dnssd.dylib
0x7fff906bb000 - 0x7fff906c3fff liblaunch.dylib
(442.26.2) <2F71CAF8-6524-329E-AC56-C506658B4C0C>
/usr/lib/system/liblaunch.dylib
0x7fff91088000 - 0x7fff91089fff
libDiagnosticMessagesClient.dylib (8)
<8548E0DC-0D2F-30B6-B045-FE8A038E76D8>
/usr/lib/libDiagnosticMessagesClient.dylib
0x7fff927a3000 - 0x7fff927efff7 libauto.dylib (185.4)
<AD5A4CE7-CB53-313C-9FAE-673303CC2D35> /usr/lib/libauto.dylib
0x7fff92a95000 - 0x7fff92a9afff libcompiler_rt.dylib
(30) <08F8731D-5961-39F1-AD00-4590321D24A9>
/usr/lib/system/libcompiler_rt.dylib
0x7fff93016000 - 0x7fff93024ff7 libsystem_network.dylib
(77.10) <0D99F24E-56FE-380F-B81B-4A4C630EE587>
/usr/lib/system/libsystem_network.dylib
0x7fff93588000 - 0x7fff9358afff libquarantine.dylib
(52.1) <143B726E-DF47-37A8-90AA-F059CFD1A2E4>
/usr/lib/system/libquarantine.dylib
0x7fff9362c000 - 0x7fff9364eff7 libxpc.dylib (140.43)
<70BC645B-6952-3264-930C-C835010CCEF9>
/usr/lib/system/libxpc.dylib
0x7fff939a0000 - 0x7fff939a1ff7 libSystem.B.dylib
(169.3) <FF25248A-574C-32DB-952F-B948C389B2A4>
/usr/lib/libSystem.B.dylib
0x7fff94e00000 - 0x7fff94f1892f libobjc.A.dylib (532.2)
<90D31928-F48D-3E37-874F-220A51FD9E37> /usr/lib/libobjc.A.dylib
0x7fff9523b000 - 0x7fff9523bfff libkeymgr.dylib (25)
<CC9E3394-BE16-397F-926B-E579B60EE429>
/usr/lib/system/libkeymgr.dylib
0x7fff957b5000 - 0x7fff957c3fff libcommonCrypto.dylib
(60027) <BAAFE0C9-BB86-3CA7-88C0-E3CBA98DA06F>
/usr/lib/system/libcommonCrypto.dylib
0x7fff957d2000 - 0x7fff957edff7 libsystem_kernel.dylib
(2050.24.15) <A9F97289-7985-31D6-AF89-151830684461>
/usr/lib/system/libsystem_kernel.dylib
0x7fff9595a000 - 0x7fff95a26ff7 libsystem_c.dylib
(825.26) <4C9EB006-FE1F-3F8F-8074-DFD94CF2CE7B>
/usr/lib/system/libsystem_c.dylib
0x7fff960e1000 - 0x7fff960e2ff7 libremovefile.dylib
(23.2) <6763BC8E-18B8-3AD9-8FFA-B43713A7264F>
/usr/lib/system/libremovefile.dylib
0x7fff969c7000 - 0x7fff969c8ff7 libsystem_sandbox.dylib
(220.3) <B739DA63-B675-387A-AD84-412A651143C0>
/usr/lib/system/libsystem_sandbox.dylib
0x7fff969c9000 - 0x7fff969f7ff7 libsystem_m.dylib
(3022.6) <B434BE5C-25AB-3EBD-BAA7-5304B34E3441>
/usr/lib/system/libsystem_m.dylib
0x7fff96f04000 - 0x7fff96f19ff7 libdispatch.dylib
(228.23) <D26996BF-FC57-39EB-8829-F63585561E09>
/usr/lib/system/libdispatch.dylib
0x7fff96f47000 - 0x7fff96f96ff7 libcorecrypto.dylib
(106.2) <CE0C29A3-C420-339B-ADAA-52F4683233CC>
/usr/lib/system/libcorecrypto.dylib
0x7fff9720a000 - 0x7fff97272ff7 libc++.1.dylib (65.1)
<20E31B90-19B9-3C2A-A9EB-474E08F9FE05> /usr/lib/libc++.1.dylib
0x7fff975e9000 - 0x7fff975f0fff libcopyfile.dylib (89)
<876573D0-E907-3566-A108-577EAD1B6182>
/usr/lib/system/libcopyfile.dylib
0x7fff975fd000 - 0x7fff97608fff libsystem_notify.dylib
(98.5) <C49275CC-835A-3207-AFBA-8C01374927B6>
/usr/lib/system/libsystem_notify.dylib
External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by all processes on this machine:
task_for_pid: 196
thread_create: 1
thread_set_state: 0
VM Region Summary:
ReadOnly portion of Libraries: Total=58.9M resident=90.5M(154%)
swapped_out_or_unallocated=16777216.0T(29874624397312%)
Writable regions: Total=18.4M written=44K(0%) resident=212K(1%)
swapped_out=0K(0%) unallocated=18.2M(99%)
REGION TYPE VIRTUAL
=========== =======
MALLOC 9396K
MALLOC guard page 16K
STACK GUARD 56.0M
Stack 8192K
VM_ALLOCATE 1024K
__DATA 1020K
__LINKEDIT 53.6M
__TEXT 5416K
shared memory 12K
=========== =======
TOTAL 134.1M