Repository: libuv/libuv

Issue #2307: x86 not ok ipc_closed_handle
Created: 2019-05-21T17:12:09Z
libuv/test/test-ipc.c
    
    
        Lines 870 to 895
      in
      f0ed5df
    
  
  
    

        
          
           int ipc_helper_closed_handle(void) { 
        

        
          
             int r; 
        

        
          
            
        

        
          
             memset(buffer, '.', LARGE_SIZE); 
        

        
          
             large_buf = uv_buf_init(buffer, LARGE_SIZE); 
        

        
          
            
        

        
          
             r = uv_pipe_init(uv_default_loop(), &channel, 1); 
        

        
          
             ASSERT(r == 0); 
        

        
          
            
        

        
          
             uv_pipe_open(&channel, 0); 
        

        
          
            
        

        
          
             ASSERT(1 == uv_is_readable((uv_stream_t*) &channel)); 
        

        
          
             ASSERT(1 == uv_is_writable((uv_stream_t*) &channel)); 
        

        
          
             ASSERT(0 == uv_is_closing((uv_handle_t*) &channel)); 
        

        
          
            
        

        
          
             if (write_until_data_queued() > 0) 
        

        
          
               send_handle_and_close(); 
        

        
          
            
        

        
          
             r = uv_run(uv_default_loop(), UV_RUN_DEFAULT); 
        

        
          
             ASSERT(r == 0); 
        

        
          
            
        

        
          
             ASSERT(closed_handle_write == 1); 
        

        
          
            
        

        
          
             MAKE_VALGRIND_HAPPY(); 
        

        
          
             return 0; 
        

        
          
           } 
        
    
  



  
    
      libuv/test/test-ipc.c
    
    
         Line 601
      in
      f0ed5df
    
  
  
    

        
          
           ASSERT(status == 0); 
        
    
  


I have no idea why but our CI is failing on this test.
libuv-v1.28.0 - https://cloud.drone.io/alpinelinux/aports/3759
libuv-v1.29.1 - https://cloud.drone.io/alpinelinux/aports/4498

Duplicate issue #3463: Make Install Failure
Created: 2022-02-07T22:16:05Z
The problem appllies to libuv vesrion 1.41.0 on Ubuntu Linux version 20.04.
After  .configure and make succed,  when make install is attempted, if fails
with the followiing diagnostics.
ok 392 - we_get_signals_mixed
FAIL: test/run-tests
1 of 1 test failed
Please report to https://github.com/libuv/libuv/issues
make[1]: *** [Makefile:5442: check-TESTS] Error 1
make[1]: Leaving directory '/home/paulr/pex/server/libuv-1.41.0'
make: *** [Makefile:5702: check-am] Error 2


Version: 
Platform:

Closing comment (2022-02-08T00:28:45Z): I looked at the duplication of #2307 link and found a possible solution in
the bnoodhuis comments of June 7, July 29, and Nov. 18, 2019. The
relevant routines
from the distribution code of test-ipc.c I have follow. Please see
"COMMENT:"
below. I don't have enough information to decide if the solution is correct.

What is your opinion and is this problem serious enough to make libuv
function
incorrectly ?



COMMENT: This routine looks much different that the version in
bnoordhuis patch.
I guess the intent is to add the 3 lines numbered 453 - 455 in bnoorhuis
patch
after the line "ASSERT_REQ(r, 0) in the version I have below. However,
please note
there is no call to uv_run() in the code I have.

static int run_ipc_test(const char* helper, uv_read_cb read_cb) {
   uv_process_t process;
   int r;

   spawn_helper(&channel, &process, helper);
   uv_read_start((uv_stream_t*)&channel, on_alloc, read_cb);

   r = uv_run(uv_default_loop(), UV_RUN_DEFAULT);
   ASSERT_EQ(r, 0);

   MAKE_VALGRIND_HAPPY();
   return 0;
}

COMMENT: This routine seems close to version in the bnoordhuis patch.
But note the use of the ASSERT_EQ() macro. In any case, I think
the intent of the modification is to delete the ASSERT at line 696
of the bnoordhuis patch.

static void closed_handle_large_write_cb(uv_write_t* req, int status) {
   ASSERT_EQ(status, 0);
   ASSERT(closed_handle_data_read = LARGE_SIZE);
   if (++write_reqs_completed == ARRAY_SIZE(write_reqs)) {
     write_reqs_completed = 0;
     if (write_until_data_queued() > 0)
       send_handle_and_close();
   }
}
On 2/7/22 15:16, Jameson Nash wrote:

 Duplicate of #2307 <#2307>

 —
 Reply to this email directly, view it on GitHub
 <#3463 (comment)>,
 or unsubscribe
 <https://github.com/notifications/unsubscribe-auth/AAHH747HOMF6TSJMTK33AS3U2BHFHANCNFSM5NYXEA2Q>.
 Triage notifications on the go with GitHub Mobile for iOS
 <https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
 or Android
 <https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.

 You are receiving this because you authored the thread.Message ID:
 ***@***.***>

-- 


Paul Romero
-----------
RCOM Communications Software
***@***.***
PHONE: (510)482-2769