Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

STM Out_channel test parallel failure #485

Open
jmid opened this issue Nov 25, 2024 · 0 comments
Open

STM Out_channel test parallel failure #485

jmid opened this issue Nov 25, 2024 · 0 comments

Comments

@jmid
Copy link
Collaborator

jmid commented Nov 25, 2024

The nightly runs triggered a test failure on Linux 5.1 on STM Out_channel test parallel
https://github.com/ocaml-multicore/multicoretests/actions/runs/11992644802/job/33432727512

random seed: 491672939
generated error fail pass / total     time test name

[ ]    0    0    0    0 / 1000     0.0s STM Out_channel test sequential
[ ]    0    0    0    0 / 1000     0.0s STM Out_channel test sequential (generating)
[✓] 1000    0    0 1000 / 1000     0.3s STM Out_channel test sequential

[ ]    0    0    0    0 / 1000     0.0s STM Out_channel test parallel
[✗]  946    0    1  836 / 1000    26.0s STM Out_channel test parallel

--- Failure --------------------------------------------------------------------

Test STM Out_channel test parallel failed (0 shrink steps):

                                                              |                         
                                                      Set_buffered true                 
                                                    Set_binary_mode false               
                                                       Output_char '3'                  
                                                             Pos                        
                                                         Is_buffered                    
                                                         Close_noerr                    
                                                    Set_binary_mode false               
                                                          Open_text                     
                                                     Set_buffered false                 
                                                        Output_byte 5                   
                                     Output_substring ("\133\017\197\130\... (truncated)
                                     Output ("\242'\176\194\134!Z[\184u\2... (truncated)
                                                             Pos                        
                                                           Seek 8L                      
                                                              |                         
                                   .----------------------------------------------------.
                                   |                                                    |                         
                             Output_byte 2                            Output ("\025\233;\000\176s[", 1, 2)        
                          Set_buffered false                                         Length                       
                         Output_string "\128"                                          Pos                        
                               Seek 80L                                            Close_noerr                    
                 Output_substring (",\000\242", 8, 65)                              Open_text                     
              Output_substring ("a\130?\210\017Qp", 8, 9)                              Pos                        


+++ Messages ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Messages for test STM Out_channel test parallel:

  Results incompatible with linearized model

                                                                                               |                                             
                                                                                  Set_buffered true : Ok (())                                
                                                                                Set_binary_mode false : Ok (())                              
                                                                                   Output_char '3' : Ok (())                                 
                                                                                          Pos : Ok (1)                                       
                                                                                    Is_buffered : Ok (true)                                  
                                                                                     Close_noerr : Ok (())                                   
                                                                                Set_binary_mode false : Ok (())                              
                                                                                      Open_text : Ok (())                                    
                                                                                  Set_buffered false : Ok (())                               
                                                                                    Output_byte 5 : Ok (())                                  
                                                                 Output_substring ("\133\017\197\130\... (truncated) : Ok (())               
                                                                 Output ("\242'\176\194\134!Z[\184u\2... (truncated) : Ok (())               
                                                                                         Pos : Ok (13)                                       
                                                                                       Seek 8L : Ok (())                                     
                                                                                               |                                             
                                                 .-------------------------------------------------------------------------------------------.
                                                 |                                                                                           |                                             
                      Output_byte 2 : Error (Sys_error("Bad file descriptor"))                                         Output ("\025\233;\000\176s[", 1, 2) : Ok (())                      
                                    Set_buffered false : Ok (())                                                                      Length : Ok (13)                                     
                  Output_string "\128" : Error (Sys_error("Bad file descriptor"))                                                      Pos : Ok (11)                                       
                        Seek 80L : Error (Sys_error("Bad file descriptor"))                                                        Close_noerr : Ok (())                                   
        Output_substring (",\000\242", 8, 65) : Error (Invalid_argument("output_substring"))                                        Open_text : Ok (())                                    
     Output_substring ("a\130?\210\017Qp", 8, 9) : Error (Invalid_argument("output_substring"))                                         Pos : Ok (0)                                       

================================================================================
failure (1 tests failed, 0 tests errored, ran 2 tests)
File "src/io/dune", line 40, characters 7-16:
40 |  (name stm_tests)
            ^^^^^^^^^
(cd _build/default/src/io && ./stm_tests.exe --verbose)
Command exited with code 1.

I've scratched my head a bit over this.
Because of the truncation, it is not possible to see the entire strings in the 2 outputs at the end of the sequential prefix.
From what can be observed:

I'm suspecting that a non-printable/control character (null \000, backspace \008, del \127, ...) is tripping up the position/length logic of the model... 🤔

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant