Closed zorglub421 closed 12 years ago
I tested on the Mac of a colleague and the programs succeeds, despite printing all these "[err] kill worker" errors that I don't see on Linux. This is its configuration:
$ uname -a Darwin hume 11.2.0 Darwin Kernel Version 11.2.0: Tue Aug 9 20:54:00 PDT 2011; root:xnu-1699.24.8~1/RELEASE_X86_64 x86_64
It would help if you could confirm the bug with a standard installation of OCaml 3.12.1 and Lwt 2.3.1 (the one in Godi) or lwt 2.3.2 (latest).
Thanks for your contribution.
Error 2 is EAGAIN ("Resource temporarily unavailable") obtained as follows:
# (Obj.magic 2 : Unix.error);;
- : Unix.error = Unix.EAGAIN
# Unix.error_message (Obj.magic 2);;
- : string = "Resource temporarily unavailable"
The Linux man page for fork() says:
ERRORS
EAGAIN fork() cannot allocate sufficient memory to copy the parent's
page tables and allocate a task structure for the child.
EAGAIN It was not possible to create a new process because the caller's
RLIMIT_NPROC resource limit was encountered. To exceed this
limit, the process must have either the CAP_SYS_ADMIN or the
CAP_SYS_RESOURCE capability.
ENOMEM fork() failed to allocate the necessary kernel structures
because memory is tight.
Do you think you might have a memory quota or a maximum number of processes?
I will try to catch these errors and print better messages but it won't solve your problem.
You can check for your system limits with "ulimit -a" and the current number of processes with "ps ax | wc -l".
Bonjour Martin,
ma version d'OSX : Darwin air.local 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun 7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386
c'est un mac air 11", le ulimit est rel. bas concernant les processus, mais j'en ai que 76 actifs :
philou@air:~/src/ml/nproc-git$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited file size (blocks, -f) unlimited max locked memory (kbytes, -l) unlimited max memory size (kbytes, -m) unlimited open files (-n) 256 pipe size (512 bytes, -p) 1 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 266 virtual memory (kbytes, -v) unlimited
tant mieux si toutes ces exceptions sont "harmless", je vais tester nproc un de ces jours à ce moment là. le fork: je n'avais pas fait attention au EAGAIN. le kill puis waitpid, j'ai essayé de remplacer sigkill par sigterm, mais j'ai autant de EINTR.
je verais pour réinstaller un ocaml "genuine" sans le patch gprint, j'avoue avoir la flemme, quoique si il n'y a que lwt comme dépendance...
salutations.
Le 30 déc. 2011 à 22:58, Martin Jambon a écrit :
I tested on the Mac of a colleague and the programs succeeds, despite printing all these "[err] kill worker" errors that I don't see on Linux. This is its configuration:
$ uname -a Darwin hume 11.2.0 Darwin Kernel Version 11.2.0: Tue Aug 9 20:54:00 PDT 2011; root:xnu-1699.24.8~1/RELEASE_X86_64 x86_64
It would help if you could confirm the bug with a standard installation of OCaml 3.12.1 and Lwt 2.3.1 (the one in Godi) or lwt 2.3.2 (latest).
Thanks for your contribution.
Reply to this email directly or view it on GitHub: https://github.com/MyLifeLabs/nproc/issues/1#issuecomment-3317627
On 12/30/2011 02:43 PM, Philippe Strauss wrote:
Bonjour Martin,
ma version d'OSX : Darwin air.local 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun 7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386
c'est un mac air 11", le ulimit est rel. bas concernant les processus, mais j'en ai que 76 actifs :
Il est fort possible que ce soit ca. A plusieurs reprises, les tests de test_nproc.ml creent 100 processus "workers". Il suffit qu'ils ne soient pas correctement termines pour que la limite de 266 soit atteinte.
Je viens faire une modification qui consiste a reessayer d'appeler waitpid s'il est "interrompu" par EINTR. Essaie la nouvelle version de developpement.
philou@air:~/src/ml/nproc-git$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited file size (blocks, -f) unlimited max locked memory (kbytes, -l) unlimited max memory size (kbytes, -m) unlimited open files (-n) 256 pipe size (512 bytes, -p) 1 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 266 virtual memory (kbytes, -v) unlimited
tant mieux si toutes ces exceptions sont "harmless", je vais tester nproc un de ces jours à ce moment là. le fork: je n'avais pas fait attention au EAGAIN. le kill puis waitpid, j'ai essayé de remplacer sigkill par sigterm, mais j'ai autant de EINTR.
je verais pour réinstaller un ocaml "genuine" sans le patch gprint, j'avoue avoir la flemme, quoique si il n'y a que lwt comme dépendance...
Bon de toute facon, ca m'etonnerait que le patch y soit pour quelque chose.
Martin
salutations.
Le 30 déc. 2011 à 22:58, Martin Jambon a écrit :
I tested on the Mac of a colleague and the programs succeeds, despite printing all these "[err] kill worker" errors that I don't see on Linux. This is its configuration:
$ uname -a Darwin hume 11.2.0 Darwin Kernel Version 11.2.0: Tue Aug 9 20:54:00 PDT 2011; root:xnu-1699.24.8~1/RELEASE_X86_64 x86_64
It would help if you could confirm the bug with a standard installation of OCaml 3.12.1 and Lwt 2.3.1 (the one in Godi) or lwt 2.3.2 (latest).
Thanks for your contribution.
Reply to this email directly or view it on GitHub: https://github.com/MyLifeLabs/nproc/issues/1#issuecomment-3317627
Reply to this email directly or view it on GitHub: https://github.com/MyLifeLabs/nproc/issues/1#issuecomment-3317948
I added a retry loop for the waitpid function, which should take care of reclaiming the child processes. Let me know if it works.
avec la nouvelle version git cela semble bon ( noter que rhausser la limite du nombre de process n'a rien chang):
philou@air:~/src/ml/nproc-git$ sudo sh -c "ulimit -u 640; ulimit -a; ./test_nproc.opt"
core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited file size (blocks, -f) unlimited max locked memory (kbytes, -l) unlimited max memory size (kbytes, -m) unlimited open files (-n) 256 pipe size (512 bytes, -p) 1 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 532 virtual memory (kbytes, -v) unlimited
[exception in f] [err] Exception raised by Nproc task: Failure("raised from f") OK [exception in g] [err] Error while handling result of Nproc task: exception Failure("raised from g") OK [unstack child] GC stats in parent: live_words: 2976688 GC stats in children: Starting worker 0 Starting worker 1 live_words: 4828 live_words: 4828 live_words: 4828 live_words: 4828 OK [lwt interface] OK [stream interface] total time: 3.130683s OK [stream interface with granularity=10] total time: 10.143147s OK
j'attache deux traces dtrace du nombre de syscall passs par les processes test_nproc entre avant le spin loop sur waitpid et maintenant (il est identique, mais je dcouvre dtrace :-) dtrace -n 'syscall:::entry { @num[pid,execname] = count(); }'
32220 ocspd 1
1 launchd 2
19 syslogd 2
32448 cupsd 2
193 UserEventAgent 6
200 prl_naptd 6
202 Little Snitch U 6
206 iStatLocal 6
209 TISwitcher 6
216 MacfusionMenuli 6
14859 TextMate 6
20 DirectoryServic 7
171 launchd 7
208 macfusionAgent 7
15 kextd 8
17 diskarbitration 8
18 configd 8
21 distnoted 8
22 blued 8
28 coreservicesd 8
36 SystemStarter 8
43 loginwindow 8
55 autofsd 8
61 lsd 8
66 socketfilterfw 8
128 coreaudiod 8
184 fontd 8
35 usbmuxd 9
177 Dock 9
32675 test_nproc.opt 11
44 KernelEventAgen 13
42 mDNSResponder 14
168 postgres 14
3188 X11.bin 15
32674 bash 16
32693 test_nproc.opt 16
32793 test_nproc.opt 16
32678 test_nproc.opt 17
32679 test_nproc.opt 17
32694 test_nproc.opt 18
32794 test_nproc.opt 18
32680 test_nproc.opt 19
32695 test_nproc.opt 20
32795 test_nproc.opt 20
32696 test_nproc.opt 22
32796 test_nproc.opt 22
32697 test_nproc.opt 24
32797 test_nproc.opt 24
32698 test_nproc.opt 26
32798 test_nproc.opt 26
162 postgres 27
179 Finder 27
32699 test_nproc.opt 28
32799 test_nproc.opt 28
47 fseventsd 29
32684 test_nproc.opt 29
167 postgres 30
32700 test_nproc.opt 30
32800 test_nproc.opt 30
32683 test_nproc.opt 31
32 httpd 32
32701 test_nproc.opt 32
32801 test_nproc.opt 32
32702 test_nproc.opt 34
32802 test_nproc.opt 34
32703 test_nproc.opt 36
32803 test_nproc.opt 36
32704 test_nproc.opt 38
32804 test_nproc.opt 38
32705 test_nproc.opt 40
32805 test_nproc.opt 40
32686 test_nproc.opt 41
32689 test_nproc.opt 41
32690 test_nproc.opt 41
32706 test_nproc.opt 42
32806 test_nproc.opt 42
32685 test_nproc.opt 43
32687 test_nproc.opt 43
32688 test_nproc.opt 43
32707 test_nproc.opt 44
32807 test_nproc.opt 44
139 prl_naptd 46
32451 taskgated 46
32708 test_nproc.opt 46
32808 test_nproc.opt 46
32709 test_nproc.opt 48
32809 test_nproc.opt 48
32710 test_nproc.opt 50
32810 test_nproc.opt 50
32711 test_nproc.opt 52
32811 test_nproc.opt 52
32712 test_nproc.opt 54
32812 test_nproc.opt 54
32713 test_nproc.opt 56
32813 test_nproc.opt 56
32676 test_nproc.opt 57
32714 test_nproc.opt 58
32814 test_nproc.opt 58
153 prl_disp_servic 59
32677 test_nproc.opt 59
32691 test_nproc.opt 60
32715 test_nproc.opt 60
32815 test_nproc.opt 60
32716 test_nproc.opt 62
32816 test_nproc.opt 62
32717 test_nproc.opt 64
32817 test_nproc.opt 64
32223 bash 65
32718 test_nproc.opt 66
32818 test_nproc.opt 66
32682 test_nproc.opt 67
32692 test_nproc.opt 68
32719 test_nproc.opt 68
32819 test_nproc.opt 68
32720 test_nproc.opt 70
32820 test_nproc.opt 70
32721 test_nproc.opt 72
32821 test_nproc.opt 72
32722 test_nproc.opt 74
32822 test_nproc.opt 74
32723 test_nproc.opt 76
32823 test_nproc.opt 76
32724 test_nproc.opt 78
32824 test_nproc.opt 78
41 mds 79
32681 test_nproc.opt 79
32725 test_nproc.opt 80
32825 test_nproc.opt 80
32726 test_nproc.opt 82
32826 test_nproc.opt 82
32727 test_nproc.opt 84
32827 test_nproc.opt 84
32728 test_nproc.opt 86
32828 test_nproc.opt 86
32729 test_nproc.opt 88
32829 test_nproc.opt 88
32730 test_nproc.opt 90
32830 test_nproc.opt 90
32731 test_nproc.opt 92
32831 test_nproc.opt 92
32732 test_nproc.opt 94
32832 test_nproc.opt 94
32733 test_nproc.opt 96
32833 test_nproc.opt 96
32673 dtrace 97
32734 test_nproc.opt 98
32834 test_nproc.opt 98
32735 test_nproc.opt 100
32835 test_nproc.opt 100
32736 test_nproc.opt 102
32836 test_nproc.opt 102
32737 test_nproc.opt 104
32837 test_nproc.opt 104
32738 test_nproc.opt 106
32838 test_nproc.opt 106
203 Little Snitch N 107
32739 test_nproc.opt 108
32839 test_nproc.opt 108
32740 test_nproc.opt 110
32840 test_nproc.opt 110
31 ntpd 112
32741 test_nproc.opt 112
32841 test_nproc.opt 112
32742 test_nproc.opt 114
32842 test_nproc.opt 114
32743 test_nproc.opt 116
32843 test_nproc.opt 116
32744 test_nproc.opt 118
32844 test_nproc.opt 118
32745 test_nproc.opt 120
32845 test_nproc.opt 120
32746 test_nproc.opt 122
32846 test_nproc.opt 122
32747 test_nproc.opt 124
32847 test_nproc.opt 124
32748 test_nproc.opt 126
32848 test_nproc.opt 126
32749 test_nproc.opt 128
32849 test_nproc.opt 128
32750 test_nproc.opt 130
32850 test_nproc.opt 130
32751 test_nproc.opt 132
32851 test_nproc.opt 132
32752 test_nproc.opt 134
32852 test_nproc.opt 134
32753 test_nproc.opt 136
32853 test_nproc.opt 136
32754 test_nproc.opt 138
32854 test_nproc.opt 138
32755 test_nproc.opt 140
32855 test_nproc.opt 140
32756 test_nproc.opt 142
32856 test_nproc.opt 142
32757 test_nproc.opt 144
32857 test_nproc.opt 144
32758 test_nproc.opt 146
32858 test_nproc.opt 146
32759 test_nproc.opt 148
32859 test_nproc.opt 148
32760 test_nproc.opt 150
32860 test_nproc.opt 150
32761 test_nproc.opt 152
32861 test_nproc.opt 152
32762 test_nproc.opt 154
32862 test_nproc.opt 154
166 postgres 156
32763 test_nproc.opt 156
32863 test_nproc.opt 156
32764 test_nproc.opt 158
32864 test_nproc.opt 158
32765 test_nproc.opt 160
32865 test_nproc.opt 160
165 postgres 161
32766 test_nproc.opt 162
32866 test_nproc.opt 162
32767 test_nproc.opt 164
32867 test_nproc.opt 164
32768 test_nproc.opt 166
32868 test_nproc.opt 166
32769 test_nproc.opt 168
32869 test_nproc.opt 168
32770 test_nproc.opt 170
32870 test_nproc.opt 170
32771 test_nproc.opt 172
32871 test_nproc.opt 172
32772 test_nproc.opt 174
32872 test_nproc.opt 174
32773 test_nproc.opt 176
32873 test_nproc.opt 176
32774 test_nproc.opt 178
32874 test_nproc.opt 178
32775 test_nproc.opt 180
32875 test_nproc.opt 180
32776 test_nproc.opt 182
32876 test_nproc.opt 182
32777 test_nproc.opt 184
32877 test_nproc.opt 184
32778 test_nproc.opt 186
32878 test_nproc.opt 186
32779 test_nproc.opt 188
32879 test_nproc.opt 188
32780 test_nproc.opt 190
32880 test_nproc.opt 190
32781 test_nproc.opt 192
32881 test_nproc.opt 192
32782 test_nproc.opt 194
32882 test_nproc.opt 194
32783 test_nproc.opt 196
32883 test_nproc.opt 196
32784 test_nproc.opt 198
32884 test_nproc.opt 198
32785 test_nproc.opt 200
32885 test_nproc.opt 200
32786 test_nproc.opt 202
32886 test_nproc.opt 202
32787 test_nproc.opt 204
32887 test_nproc.opt 204
32788 test_nproc.opt 206
32888 test_nproc.opt 206
32789 test_nproc.opt 208
32889 test_nproc.opt 208
32790 test_nproc.opt 210
32890 test_nproc.opt 210
32791 test_nproc.opt 212
32891 test_nproc.opt 212
32792 test_nproc.opt 214
32892 test_nproc.opt 214
46 hidd 428
174 gpg-agent 480
78 WindowServer 1558
60 iStatLocalDaemo 2203
178 SystemUIServer 2874
32674 test_nproc.opt 6646
31754 Terminal 10041
19 syslogd 2
177 Dock 2
184 fontd 2
171 launchd 7
193 UserEventAgent 8
200 prl_naptd 8
202 Little Snitch U 8
206 iStatLocal 8
208 macfusionAgent 8
209 TISwitcher 8
216 MacfusionMenuli 8
14859 TextMate 8
42 mDNSResponder 10
47 fseventsd 14
3188 X11.bin 15
32450 bash 16
32470 test_nproc.opt 16
32570 test_nproc.opt 16
32456 test_nproc.opt 17
59 postgres 18
32451 launchd 18
32471 test_nproc.opt 18
32571 test_nproc.opt 18
32457 test_nproc.opt 19
32220 ocspd 20
32472 test_nproc.opt 20
32572 test_nproc.opt 20
32458 test_nproc.opt 21
32461 test_nproc.opt 21
32473 test_nproc.opt 22
32573 test_nproc.opt 22
32459 test_nproc.opt 23
32474 test_nproc.opt 24
32574 test_nproc.opt 24
179 Finder 25
32463 test_nproc.opt 25
32475 test_nproc.opt 26
32575 test_nproc.opt 26
32476 test_nproc.opt 28
32576 test_nproc.opt 28
32465 test_nproc.opt 29
32477 test_nproc.opt 30
32577 test_nproc.opt 30
20 DirectoryServic 31
32 httpd 32
162 postgres 32
32478 test_nproc.opt 32
32578 test_nproc.opt 32
32466 test_nproc.opt 33
32479 test_nproc.opt 34
32579 test_nproc.opt 34
32480 test_nproc.opt 36
32580 test_nproc.opt 36
32481 test_nproc.opt 38
32581 test_nproc.opt 38
32482 test_nproc.opt 40
32582 test_nproc.opt 40
139 prl_naptd 42
32483 test_nproc.opt 42
32583 test_nproc.opt 42
32484 test_nproc.opt 44
32584 test_nproc.opt 44
32460 test_nproc.opt 45
168 postgres 46
32485 test_nproc.opt 46
32585 test_nproc.opt 46
32486 test_nproc.opt 48
32586 test_nproc.opt 48
32462 test_nproc.opt 49
32487 test_nproc.opt 50
32587 test_nproc.opt 50
153 prl_disp_servic 51
32488 test_nproc.opt 52
32588 test_nproc.opt 52
32489 test_nproc.opt 54
32589 test_nproc.opt 54
32454 test_nproc.opt 55
32464 test_nproc.opt 55
32467 test_nproc.opt 55
32490 test_nproc.opt 56
32590 test_nproc.opt 56
32491 test_nproc.opt 58
32591 test_nproc.opt 58
32468 test_nproc.opt 60
32492 test_nproc.opt 60
32592 test_nproc.opt 60
32493 test_nproc.opt 62
32593 test_nproc.opt 62
32452 test_nproc.opt 63
32453 test_nproc.opt 63
32494 test_nproc.opt 64
32594 test_nproc.opt 64
167 postgres 65
32455 test_nproc.opt 65
32495 test_nproc.opt 66
32595 test_nproc.opt 66
32469 test_nproc.opt 68
32496 test_nproc.opt 68
32596 test_nproc.opt 68
32497 test_nproc.opt 70
32597 test_nproc.opt 70
32223 bash 72
32498 test_nproc.opt 72
32598 test_nproc.opt 72
32499 test_nproc.opt 74
32599 test_nproc.opt 74
32500 test_nproc.opt 76
32600 test_nproc.opt 76
32501 test_nproc.opt 78
32601 test_nproc.opt 78
32502 test_nproc.opt 80
32602 test_nproc.opt 80
32503 test_nproc.opt 82
32603 test_nproc.opt 82
32504 test_nproc.opt 84
32604 test_nproc.opt 84
32505 test_nproc.opt 86
32605 test_nproc.opt 86
32506 test_nproc.opt 88
32606 test_nproc.opt 88
32507 test_nproc.opt 90
32607 test_nproc.opt 90
32508 test_nproc.opt 92
32608 test_nproc.opt 92
32509 test_nproc.opt 94
32609 test_nproc.opt 94
32510 test_nproc.opt 96
32610 test_nproc.opt 96
32449 dtrace 97
32511 test_nproc.opt 98
32611 test_nproc.opt 98
32512 test_nproc.opt 100
32612 test_nproc.opt 100
32513 test_nproc.opt 102
32613 test_nproc.opt 102
32514 test_nproc.opt 104
32614 test_nproc.opt 104
32515 test_nproc.opt 106
32615 test_nproc.opt 106
1 launchd 108
203 Little Snitch N 108
32516 test_nproc.opt 108
32616 test_nproc.opt 108
32517 test_nproc.opt 110
32617 test_nproc.opt 110
41 mds 111
31 ntpd 112
32518 test_nproc.opt 112
32618 test_nproc.opt 112
32670 postgres 112
32519 test_nproc.opt 114
32619 test_nproc.opt 114
32520 test_nproc.opt 116
32620 test_nproc.opt 116
32521 test_nproc.opt 118
32621 test_nproc.opt 118
32522 test_nproc.opt 120
32622 test_nproc.opt 120
32523 test_nproc.opt 122
32623 test_nproc.opt 122
32524 test_nproc.opt 124
32624 test_nproc.opt 124
32525 test_nproc.opt 126
32625 test_nproc.opt 126
32526 test_nproc.opt 128
32626 test_nproc.opt 128
32527 test_nproc.opt 130
32627 test_nproc.opt 130
174 gpg-agent 132
32528 test_nproc.opt 132
32628 test_nproc.opt 133
32529 test_nproc.opt 134
32629 test_nproc.opt 134
32530 test_nproc.opt 136
32630 test_nproc.opt 136
32531 test_nproc.opt 138
32631 test_nproc.opt 138
32532 test_nproc.opt 140
32632 test_nproc.opt 140
32533 test_nproc.opt 142
32633 test_nproc.opt 142
32534 test_nproc.opt 144
32634 test_nproc.opt 144
32535 test_nproc.opt 146
32635 test_nproc.opt 146
32536 test_nproc.opt 148
32636 test_nproc.opt 148
32537 test_nproc.opt 150
32637 test_nproc.opt 150
32538 test_nproc.opt 152
32638 test_nproc.opt 152
32539 test_nproc.opt 154
32639 test_nproc.opt 154
32451 taskgated 156
32540 test_nproc.opt 156
32640 test_nproc.opt 156
32541 test_nproc.opt 158
32641 test_nproc.opt 158
165 postgres 160
166 postgres 160
32542 test_nproc.opt 160
32642 test_nproc.opt 160
32543 test_nproc.opt 162
32643 test_nproc.opt 162
32544 test_nproc.opt 164
32644 test_nproc.opt 164
32545 test_nproc.opt 166
32645 test_nproc.opt 166
32546 test_nproc.opt 168
32646 test_nproc.opt 168
32547 test_nproc.opt 170
32647 test_nproc.opt 170
32548 test_nproc.opt 172
32648 test_nproc.opt 172
32549 test_nproc.opt 174
32649 test_nproc.opt 174
32550 test_nproc.opt 176
32650 test_nproc.opt 176
32551 test_nproc.opt 178
32651 test_nproc.opt 178
32552 test_nproc.opt 180
32652 test_nproc.opt 180
32553 test_nproc.opt 182
32653 test_nproc.opt 182
32554 test_nproc.opt 184
32654 test_nproc.opt 184
32555 test_nproc.opt 186
32655 test_nproc.opt 186
32556 test_nproc.opt 188
32656 test_nproc.opt 188
32557 test_nproc.opt 190
32657 test_nproc.opt 190
32558 test_nproc.opt 192
32658 test_nproc.opt 192
32559 test_nproc.opt 194
32659 test_nproc.opt 194
32560 test_nproc.opt 196
32660 test_nproc.opt 196
32561 test_nproc.opt 198
32661 test_nproc.opt 198
32562 test_nproc.opt 200
32662 test_nproc.opt 200
32563 test_nproc.opt 202
32663 test_nproc.opt 202
32564 test_nproc.opt 204
32664 test_nproc.opt 204
32565 test_nproc.opt 206
32665 test_nproc.opt 206
32566 test_nproc.opt 208
32666 test_nproc.opt 208
32567 test_nproc.opt 210
32667 test_nproc.opt 210
32568 test_nproc.opt 212
32668 test_nproc.opt 212
32569 test_nproc.opt 214
32669 test_nproc.opt 214
31754 Terminal 259
46 hidd 562
78 WindowServer 1435
60 iStatLocalDaemo 2190
178 SystemUIServer 2860
32450 test_nproc.opt 6508
philou@air:~/src/ml/nproc-git$ ./test_nproc.opt [exception in f] [err] Exception raised by Nproc task: Failure("raised from f") [err] kill worker 13151: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13152: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13153: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13154: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13155: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13156: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13157: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13158: Unix.Unix_error(Unix.EINTR, "waitpid", "") OK [exception in g] [err] Error while handling result of Nproc task: exception Failure("raised from g") [err] kill worker 13159: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13160: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13161: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13162: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13163: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13164: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13165: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13166: Unix.Unix_error(Unix.EINTR, "waitpid", "") OK [unstack child] GC stats in parent: live_words: 2964451 GC stats in children: Starting worker 0 Starting worker 1 live_words: 4834 live_words: 4834 live_words: 4834 live_words: 4834 [err] kill worker 13167: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13168: Unix.Unix_error(Unix.EINTR, "waitpid", "") OK [lwt interface] [err] kill worker 13169: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13170: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13171: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13172: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13173: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13174: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13175: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13176: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13177: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13178: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13179: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13180: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13181: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13182: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13183: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13184: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13185: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13186: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13187: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13188: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13189: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13190: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13191: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13192: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13193: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13194: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13195: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13196: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13197: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13198: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13199: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13200: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13201: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13202: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13203: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13204: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13205: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13206: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13207: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13208: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13209: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13210: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13211: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13212: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13213: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13214: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13215: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13216: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13217: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13218: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13219: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13220: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13221: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13222: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13223: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13224: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13225: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13226: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13227: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13228: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13229: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13230: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13231: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13232: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13233: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13234: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13235: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13236: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13237: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13238: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13239: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13241: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13242: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13243: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13244: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13245: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13246: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13247: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13248: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13249: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13250: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13251: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13252: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13253: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13254: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13255: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13256: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13257: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13258: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13259: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13260: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13261: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13262: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13263: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13264: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13265: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13266: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13267: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13268: Unix.Unix_error(Unix.EINTR, "waitpid", "") OK [stream interface] [err] kill worker 13269: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13270: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13271: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13272: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13273: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13274: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13275: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13276: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13277: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13278: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13279: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13280: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13281: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13282: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13283: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13284: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13285: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13286: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13287: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13288: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13289: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13290: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13291: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13292: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13293: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13294: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13295: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13296: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13297: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13298: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13299: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13300: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13301: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13302: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13303: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13304: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13305: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13306: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13307: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13308: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13309: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13310: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13311: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13312: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13313: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13314: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13315: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13316: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13317: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13318: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13319: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13320: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13321: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13322: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13323: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13324: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13325: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13326: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13327: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13328: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13329: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13330: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13331: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13332: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13333: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13334: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13335: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13336: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13337: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13338: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13339: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13340: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13341: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13342: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13343: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13344: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13345: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13346: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13347: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13348: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13349: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13350: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13351: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13352: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13353: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13354: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13355: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13356: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13357: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13358: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13359: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13360: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13361: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13362: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13363: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13364: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13365: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13366: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13367: Unix.Unix_error(Unix.EINTR, "waitpid", "") [err] kill worker 13368: Unix.Unix_error(Unix.EINTR, "waitpid", "") total time: 3.190002s OK [stream interface with granularity=10] Fatal error: exception Unix.Unix_error(2, "fork", "")
Duh some unix syscall semantic peculiarities ? :-)
my box is a mac air 11", core2 duo 1.4GHz. I run ocaml with jeremy dimino gprint patch I must confess.