mrutkows commented on pull request #128:
URL: 
https://github.com/apache/openwhisk-runtime-go/pull/128#issuecomment-679387166


   @sciabarra The issue is ack'ed in the 1.14 release notes:
   https://golang.org/doc/go1.14
   
   Specifically:
   "Goroutines are now asynchronously preemptible. As a result, loops without 
function calls no longer potentially deadlock the scheduler or significantly 
delay garbage collection. This is supported on all platforms except 
windows/arm, darwin/arm, js/wasm, and plan9/*.
   
   A consequence of the implementation of preemption is that on Unix systems, 
including Linux and macOS systems, programs built with Go 1.14 will receive 
more signals than programs built with earlier releases. This means that 
programs that use packages like syscall or golang.org/x/sys/unix will see more 
slow system calls fail with EINTR errors. Those programs will have to handle 
those errors in some way, most likely looping to try the system call again. For 
more information about this see man 7 signal for Linux systems or similar 
documentation for other systems. "
   
   Under production loads, many sys. level calls will fail because they are not 
coded to be interrupt tolerant (i.e., code their own retries on failure) 
resulting higher order errors.  


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to