Hi Tomas,

Thanks for your prompt reply and your offer to help. I might need to get back 
to this since I am not too experienced in debugging these kinds of issues. 
Anyway, I gave it a try and I think I have found the immediate cause:

I installed the debug symbols (r-base-core-dbg), placed 
https://github.com/wch/r-source/blob/tags/R-3-5-2/src/library/parallel/src/fork.c
 in cwd and changed the wrapper code to:

mc_ret <- parallel::mclapply(seq_len(nrow(parts)), function(i) {
    # we fail for the input resulting in parts having 85 rows
    if (nrow(parts) == 85L && !file.exists(as.character(Sys.getpid()))) {
      file.create(as.character(Sys.getpid()))
      print(Sys.getpid())
      Sys.sleep(30)
    }

    # ...

    return(TRUE)
  }, mc.preschedule = TRUE, mc.cores = 2L)

This way I ended up with only two child processes to which I each attached a 
debugger. In total I ran about 10 debugging sessions and it was always the 
second child process failing. The errno after write returned -1 was 9 (EBADF). 

>From what I can see, the reason for this is that the second child tries to 
>write to fd 7, but already during the very beginning of the first invocation 
>of the anonymous function to parallelize, i.e. during Sys.sleep(30), there is 
>no such file descriptor. From this observation I would conclude that it is NOT 
>the code run from that function, i.e. # ...,  causing the issue. Let me point 
>out again, that this is NOT the very first invocation of mclapply in this R 
>session. There is at least one previous call to it, which works fine.


File descriptors directly after attaching gdb to both child processes during 
Sys.sleep(30):

### master
root@ip-10-0-48-30:~/latest_test# ls -l /proc/22119/fd
total 0
lrwx------ 1 root root 64 Nov 28 04:49 0 -> /dev/pts/0
lrwx------ 1 root root 64 Nov 28 04:49 1 -> /dev/pts/0
lrwx------ 1 root root 64 Nov 28 04:49 2 -> /dev/pts/0
lr-x------ 1 root root 64 Nov 28 04:49 3 -> /path/to/script.R
lrwx------ 1 root root 64 Nov 28 04:49 4 -> /path/on/nfs/write.lock
lr-x------ 1 root root 64 Nov 28 04:49 5 -> 'pipe:[266120]'
l-wx------ 1 root root 64 Nov 28 04:49 8 -> 'pipe:[266121]'


### first child (writes to fd 6)
(gdb) shell ls -l /proc/22134/fd
total 0
lrwx------ 1 root root 64 Nov 28 04:42 0 -> /dev/pts/0
lrwx------ 1 root root 64 Nov 28 04:42 1 -> /dev/pts/0
lrwx------ 1 root root 64 Nov 28 04:42 2 -> /dev/pts/0
lr-x------ 1 root root 64 Nov 28 04:42 3 -> /path/to/script.R
lrwx------ 1 root root 64 Nov 28 04:42 4 -> /path/on/nfs/write.lock
l-wx------ 1 root root 64 Nov 28 04:42 6 -> 'pipe:[266120]'
l-wx------ 1 root root 64 Nov 28 04:42 8 -> 'pipe:[266121]'

### second child (tries writing to fd 7)
(gdb) shell ls -l /proc/22135/fd
total 0
lr-x------ 1 root root 64 Nov 28 04:42 0 -> 'pipe:[266123]'
lrwx------ 1 root root 64 Nov 28 04:42 1 -> /dev/pts/0
l-wx------ 1 root root 64 Nov 28 04:42 10 -> 'pipe:[266123]'
lrwx------ 1 root root 64 Nov 28 04:42 2 -> /dev/pts/0
lr-x------ 1 root root 64 Nov 28 04:42 3 -> /path/to/script.R
lrwx------ 1 root root 64 Nov 28 04:42 4 -> /path/on/nfs/write.lock


# debugging mc_send_master in both child processes:

### first child (all OK):
(gdb) break mc_send_master
Breakpoint 1 at 0x7f5b2687b0a0: file fork.c, line 681.
(gdb) c
Continuing.

Breakpoint 1, mc_send_master (what=0x555c6dd2cd00) at fork.c:681
warning: Source file is more recent than executable.
681     {
(gdb) info args
what = 0x555c6dd2cd00
(gdb) n
682         if (is_master)
(gdb) n
684         if (master_fd == -1) 
(gdb) n
686         if (TYPEOF(what) != RAWSXP) 
(gdb) n
688         R_xlen_t len = XLENGTH(what);
(gdb) n
689         unsigned char *b = RAW(what);
(gdb) n
693         if (writerep(master_fd, &len, sizeof(len)) != sizeof(len)) {
(gdb) info locals
len = 538
b = <optimized out>
n = <optimized out>
(gdb) s
writerep (fildes=6, buf=buf@entry=0x7ffdd6da7db0, nbyte=nbyte@entry=8)
    at fork.c:653
653     {
(gdb) info args
fildes = 6
buf = 0x7ffdd6da7db0
nbyte = 8
(gdb) n
654         size_t wbyte = 0;
(gdb) n
653     {
(gdb) n
657             ssize_t w = write(fildes, ptr + wbyte, nbyte - wbyte);
(gdb) n
658             if (w == -1) {
(gdb) n
657             ssize_t w = write(fildes, ptr + wbyte, nbyte - wbyte);
(gdb) n
658             if (w == -1) {
(gdb) n
664             if (w == 0) {
(gdb) n
670             wbyte += w;
(gdb) n
671             if (wbyte == nbyte)
(gdb) n
672                 return wbyte;
(gdb) n
674     }
(gdb) n
mc_send_master (what=<optimized out>) at fork.c:699
699         for (R_xlen_t i = 0; i < len; i += n) {
(gdb) n
700             n = writerep(master_fd, b + i, len - i);
(gdb) n
701             if (n < 1) {
(gdb) n
699         for (R_xlen_t i = 0; i < len; i += n) {
(gdb) n
707         return ScalarLogical(1);
(gdb) n
708     }



### second child (write fails with EBADF):
(gdb) break mc_send_master
Breakpoint 1 at 0x7f5016f3e0a0: file fork.c, line 681.
(gdb) c
Continuing.

Breakpoint 1, mc_send_master (what=0x563382a71910) at fork.c:681
warning: Source file is more recent than executable.
681     {
(gdb) info args
what = 0x563382a71910
(gdb) n
682         if (is_master)
(gdb) n
684         if (master_fd == -1) 
(gdb) n
686         if (TYPEOF(what) != RAWSXP) 
(gdb) n
688         R_xlen_t len = XLENGTH(what);
(gdb) n
689         unsigned char *b = RAW(what);
(gdb) n
693         if (writerep(master_fd, &len, sizeof(len)) != sizeof(len)) {
(gdb) info locals
len = 526
b = <optimized out>
n = <optimized out>
(gdb) s
writerep (fildes=7, buf=buf@entry=0x7fff4027ad60, nbyte=nbyte@entry=8)
    at fork.c:653
653     {
(gdb) info args
fildes = 7
buf = 0x7fff4027ad60
nbyte = 8
(gdb) n
654         size_t wbyte = 0;
(gdb) n
653     {
(gdb) n
657             ssize_t w = write(fildes, ptr + wbyte, nbyte - wbyte);
(gdb) n
658             if (w == -1) {
(gdb) info locals
w = <optimized out>
wbyte = 0
ptr = 0x7fff4027ad60 "\016\002"
(gdb) n
657             ssize_t w = write(fildes, ptr + wbyte, nbyte - wbyte);
(gdb) n
658             if (w == -1) {
(gdb) n
659                 if (errno == EINTR)
(gdb) n
674     }
(gdb) p __errno_location()
$1 = (int *) 0x7f50322cb540
(gdb) x/x $1
0x7f50322cb540: 0x00000009
(gdb) python import errno
(gdb) python print(errno.errorcode[9])
EBADF
(gdb) n
mc_send_master (what=<optimized out>) at fork.c:702
702                 close(master_fd);
(gdb) n
704                 error(_("write error, closing pipe to the master"));
(gdb) n
703                 master_fd = -1;
(gdb) n
704                 error(_("write error, closing pipe to the master"));
(gdb) n
685             error(_("there is no pipe to the master process"));


Does this help in any way? 

Is there something else I can/should look at?

Regards,
Andreas


2019-11-27 15:04 GMT+01:00 Tomas Kalibera<tomas.kalib...@gmail.com>:
> Hi Andreas,
> the error is reported when some child process cannot send results to the 
> master process, which originates from an error returned by write() - when 
> write() returns -1 or 0. The logic around the writing has not changed since R 
> 3.5.2. It should not be related to the printing in the child, only to 
> returning the value. The problem may be originating from the execution 
> environment, virtualization, and/or possibly from a lack of robustness in R. 
> To resolve this we need to find out which error was returned and why. Either 
> you can try to create a reproducible example (something I could use to 
> trigger an error on my system and then debug) or to debug on your system 
> (build R from source, ensure the bug is still triggered, then instrument to 
> print the exact error from the OS and where it was detected, etc). In 
> principle you could also try without code instrumentation just using strace. 
> Just from looking at the code in R around the writing I am not seeing any bug 
> there. If you choose to debug o
 n your system I can help with the instrumentation.
> 
> Best
> Tomas
> 
> On 11/27/19 12:40 PM, Andreas Kersting wrote:
>> Hi again,
>>
>> One important correction of my first message: I misinterpreted the output. 
>> Actually in that R session 2 input files were processed one after the other 
>> in a loop. The first (with 88 parts went fine). The second (with 85 parts) 
>> produced the sendMaster errors and failed. If (in a new session via Rscript) 
>> I only process the second input file it will work. The other observations on 
>> R vs Rscript, NFS share etc. still hold.
>>
>> Sorry for this! Regards,
>> Andreas
>>
>> 2019-11-27 12:10 GMT+01:00 Andreas Kersting<r-de...@akersting.de>:
>>> Hi,
>>>
>>> I am facing a very weird problem with parallel::mclapply. I have a script 
>>> which does some data wrangling on an input dataset in parallel and then 
>>> writes the results to disk. I have been using this script daily for more 
>>> than one year always on an EC2 instance launched from the same AMI (no 
>>> updates installed after launch) and processed thousands of different input 
>>> data sets successfully. I now have an input dataset for which I face the 
>>> following bug:
>>>
>>> The basic outline of the problematic section of the script:
>>>
>>> # parts is a data.table with 88 rows
>>> mc_ret <- parallel::mclapply(sample.int(nrow(parts)), function(i) {
>>>    # do some data wrangling and write the result to a file
>>>    # ...
>>>
>>>    print(paste0("part ", i, " written successfully."))
>>>    return(TRUE)
>>> }, mc.preschedule = FALSE, mc.cores = 2L)
>>>
>>> str(mc_ret)
>>>
>>>
>>> Expected output: "part i written successfully." is printed 88 times, once 
>>> for each value of i. mc_ret is a list of length 88, each element being 
>>> TRUE. Its structure is printed once. All outputs are created successfully.
>>>
>>> Actual output (see end of the message): "part i written successfully." is 
>>> printed 88 times, once for each value of i. mc_ret is a list of length 88, 
>>> each element being TRUE. Its structure is printed. All outputs are created 
>>> successfully. So far so good.
>>>
>>> But then "part i written successfully." it is printed another X times, for 
>>> values of i for which it was already printed. This output is intermingled 
>>> with X-1 times the following error message:
>>>
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>>
>>> and Y times the message "Execution halted". mc_ret is printed again, now 
>>> being a list of length 85, with the first element being TRUE and all other 
>>> elements being NULL. X and Y vary from run to run.
>>>
>>>
>>> Now to the main problem: I tried very hard to create a reproducible 
>>> example, but I failed. What I observed:
>>> - The output is (and has always been) written to path which is on an NFS 
>>> share. If I instead write to a path on a local disk it will work.
>>> - The script is invoked using Rscript. If I instead source it from an 
>>> interactive R session it works. There are at least two more people who have 
>>> observed this: 
>>> https://stackoverflow.com/questions/51986674/mclapply-sendmaster-error-only-with-rscript
>>> - Before the call to mclapply the code acquires an exclusive file lock on a 
>>> dedicated lock file, not written to but also on the NFS share. If I remove 
>>> the code acquiring the lock, the whole script will also work if called 
>>> using Rscript.
>>> - The problem also occurs for mc.preschedule = TRUE.
>>> - There is no error if I set mc.cores to 1.
>>> - And stressing again: the code works without any changes from Rscript for 
>>> thousands of other data sets.
>>>
>>>
>>> Rscript -e "sessionInfo()":
>>> R version 3.5.2 (2018-12-20)
>>> Platform: x86_64-pc-linux-gnu (64-bit)
>>> Running under: Ubuntu 18.04.2 LTS
>>>
>>> Matrix products: default
>>> BLAS: /usr/lib/x86_64-linux-gnu/openblas/libblas.so.3
>>> LAPACK: /usr/lib/x86_64-linux-gnu/libopenblasp-r0.2.20.so
>>>
>>> locale:
>>>   [1] LC_CTYPE=C.UTF-8       LC_NUMERIC=C           LC_TIME=C.UTF-8
>>>   [4] LC_COLLATE=C.UTF-8     LC_MONETARY=C.UTF-8    LC_MESSAGES=C.UTF-8
>>>   [7] LC_PAPER=C.UTF-8       LC_NAME=C              LC_ADDRESS=C
>>> [10] LC_TELEPHONE=C         LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C
>>>
>>> attached base packages:
>>> [1] stats     graphics  grDevices utils     datasets  methods   base
>>>
>>> loaded via a namespace (and not attached):
>>> [1] compiler_3.5.2
>>>
>>>
>>> I know this is a fairly old R version. I have not been able to reproduce 
>>> the bug with a more recent version, but since it is so difficult to 
>>> trigger, this does not mean much, I guess. I have looked through the 
>>> changes made to the code of mclapply since that version and could not find 
>>> something directly related. I am not even sure if it is a problem in the 
>>> parallel package or some other (memory) bug. What strikes me is that others 
>>> have observed a very similar error when using Rscript but not when using an 
>>> interactive R session, just like I do.
>>>
>>> I am not expecting a fix based on the information I provide, but maybe 
>>> someone has some thoughts on this!?
>>>
>>> Regards,
>>> Andreas
>>>
>>>
>>>
>>>
>>> Actual output:
>>>
>>> [1] "part 51 written successfully."
>>> [1] "part 30 written successfully."
>>> [1] "part 32 written successfully."
>>> [1] "part 48 written successfully."
>>> [1] "part 63 written successfully."
>>> [1] "part 5 written successfully."
>>> [1][1] "part 14 written successfully." "part 18 written successfully."
>>>
>>> [1] "part 38 written successfully."
>>> [1] "part 11 written successfully."
>>> [1] "part 68 written successfully."
>>> [1] "part 45 written successfully."
>>> [1] "part 88 written successfully."
>>> [1] "part 36 written successfully."
>>> [1] "part 44 written successfully."
>>> [1] "part 55 written successfully."
>>> [1] "part 26 written successfully."
>>> [1] "part 37 written successfully."
>>> [1] "part 22 written successfully."
>>> [1] "part 13 written successfully."
>>> [1] "part 67 written successfully."
>>> [1] "part 10 written successfully."
>>> [1] "part 24 written successfully."
>>> [1] "part 20 written successfully."
>>> [1] "part 74 written successfully."
>>> [1] "part 50 written successfully."
>>> [1] "part 2 written successfully."
>>> [1] "part 17 written successfully."
>>> [1] "part 66 written successfully."
>>> [1] "part 61 written successfully."
>>> [1][1] "part 7 written successfully." "part 31 written successfully."
>>>
>>> [1] "part 70 written successfully."
>>> [1] "part 71 written successfully."
>>> [1][1] "part 76 written successfully."
>>>   "part 42 written successfully."
>>> [1][1] "part 72 written successfully." "part 12 written successfully."
>>>
>>> [1] "part 39 written successfully."
>>> [1] "part 58 written successfully."
>>> [1] "part 87 written successfully."
>>> [1] "part 81 written successfully."
>>> [1] "part 3 written successfully."
>>> [1] "part 29 written successfully."
>>> [1] "part 82 written successfully."
>>> [1] "part 54 written successfully."
>>> [1] "part 23 written successfully."
>>> [1] "part 56 written successfully."
>>> [1] "part 73 written successfully."
>>> [1] "part 27 written successfully."
>>> [1] "part 64 written successfully."
>>> [1] "part 46 written successfully."
>>> [1] "part 80 written successfully."
>>> [1] "part 53 written successfully."
>>> [1] "part 43 written successfully."
>>> [1] "part 47 written successfully."
>>> [1] "part 57 written successfully."
>>> [1] "part 75 written successfully."
>>> [1] "part 84 written successfully."
>>> [1] "part 85 written successfully."
>>> [1][1] "part 86 written successfully."
>>>   "part 19 written successfully."
>>> [1][1] "part 33 written successfully." "part 34 written successfully."
>>>
>>> [1] "part 21 written successfully."
>>> [1] "part 40 written successfully."
>>> [1][1] "part 4 written successfully."
>>>   "part 28 written successfully."
>>> [1] "part 62 written successfully."
>>> [1] "part 16 written successfully."
>>> [1] "part 79 written successfully."
>>> [1] "part 6 written successfully."
>>> [1] "part 77 written successfully."
>>> [1] "part 65 written successfully."
>>> [1] "part 60 written successfully."
>>> [1] "part 78 written successfully."
>>> [1] "part 1 written successfully."
>>> [1] "part 83 written successfully."
>>> [1] "part 9 written successfully."
>>> [1] "part 15 written successfully."
>>> [1][1] "part 41 written successfully."
>>>   "part 35 written successfully."
>>> [1][1] "part 8 written successfully." "part 69 written successfully."
>>>
>>> [1] "part 59 written successfully."
>>> [1] "part 25 written successfully."
>>> [1] "part 49 written successfully."
>>> [1] "part 52 written successfully."
>>> List of 88
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>>   $ : logi TRUE
>>> [1] "part 31 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> lapply -> FUN -> mcparallel -> sendMaster
>>> [1] "part 71 written successfully."
>>> [1] "part 35 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 42 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> Execution halted
>>> [1] "part 4 written successfully."
>>> Execution halted
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1][1] "part 30 written successfully." "part 40 written successfully."
>>>
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> Execution halted
>>> [1] "part 41 written successfully."
>>> [1] "part 80 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 45 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> Execution halted
>>> [1] "part 82 written successfully."
>>> [1] "part 54 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 59 written successfully."
>>> Execution halted
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 27 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> Execution halted
>>> [1] "part 36 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> Execution halted
>>> [1] "part 44 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> Execution halted
>>> Execution halted
>>> [1] "part 83 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 61 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 70 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 66 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 10 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> Execution halted
>>> Execution halted
>>> [1] "part 53 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 55 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 15 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 50 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 5 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> Execution halted
>>> Execution halted
>>> [1] "part 48 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 32 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 69 written successfully."
>>> Execution halted
>>> [1] "part 52 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 77 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> Execution halted
>>> Execution halted
>>> [1] "part 24 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 56 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 6 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 62 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 33 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> Execution halted
>>> [1] "part 16 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 34 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 74 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> Execution halted
>>> [1] "part 2 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 19 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> Execution halted
>>> [1] "part 9 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 11 written successfully."
>>> [1] "part 28 written successfully."
>>> [1] "part 29 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 17 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 65 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> Execution halted
>>> Execution halted
>>> [1] "part 68 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 43 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 38 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 1 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 57 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 8 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1] "part 25 written successfully."
>>> Error in sendMaster(try(eval(expr, env), silent = TRUE)) :
>>>    write error, closing pipe to the master
>>> Calls: lapply ... <Anonymous> -> <Anonymous> -> mcparallel -> sendMaster
>>> [1]List of 85
>>>   $ : logi TRUE
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>>   $ : NULL
>>> ______________________________________________
>>> R-devel@r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>>
>> ______________________________________________
>> R-devel@r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
> 
> 
> 
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to