Actions
Bug #13066
closed 
    
  2.4.0-rc1, VC14, Segmentation fault on RSS::TestRSS10Core#test_to_xml
    Bug #13066:
    2.4.0-rc1, VC14, Segmentation fault on RSS::TestRSS10Core#test_to_xml
  
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.4.0rc1 (2016-12-12 trunk 57064) [x64-mswin64_140]
Description
I read Mr. Nakada's tweet (https://twitter.com/n0kada/status/811156759611965441), so I tried and got segmentation fault. Please see attached file.
What I did was:
- extract ruby-2.4.0-rc1.tar.xz
- apply r57079 (fix link error with VC14) manually
- win32\configure.bat --prefix=c:/ruby --disable-rubygems --disable-install-doc
- nmake
- delete other test files, now, "test" folder only contains "lib", "rss" and "runner.rb"
- nmake test-all
- if test passed, close and restart command prompt, and nmake test-all again
- segmentation fault happened after around 5 times trial
Files
        
           Updated by Anonymous almost 9 years ago
          Updated by Anonymous almost 9 years ago
          
          
        
        
      
      - File segfault_new-timec.txt segfault_new-timec.txt added
- File fatal_new-timec_mod.txt fatal_new-timec_mod.txt added
- ruby -v set to ruby 2.4.0rc1 (2016-12-12 trunk 57064) [x64-mswin64_140]
I tried test-all with time.c which has debug code. Error messages are attached.
I did followings (step 1--8 is same as I wrote above):
- update time.c to r57157. Other files are not updated.
- do test-all repeatedly, and I got segfault. See "segfault_new-timec.txt".
- It seems like segfault happens outside try-except, so I changed time.c as follows.
value_insane_p(VALUE x)
{
    VALUE klass;
    LPEXCEPTION_POINTERS info;
    void *failed_address = 0;
    __try {
        if (SPECIAL_CONST_P(x)) return 0; // this line was outside of __try{}
        if (!RBASIC_CLASS(x)) return (void *)x; // this line was outside of __try{}
        RB_GC_GUARD(klass) = RBASIC_CLASS(x);
    }
- do test-all repeatedly, and I got test error. See "fatal_new-timec_mod.txt".
        
           Updated by nobu (Nobuyoshi Nakada) almost 9 years ago
          Updated by nobu (Nobuyoshi Nakada) almost 9 years ago
          
          
        
        
      
      - Backport changed from 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN to 2.1: REQUIRED, 2.2: REQUIRED, 2.3: REQUIRED
        
           Updated by nobu (Nobuyoshi Nakada) almost 9 years ago
          Updated by nobu (Nobuyoshi Nakada) almost 9 years ago
          
          
        
        
      
      - Status changed from Open to Closed
Applied in changeset r57172.
time.c: fix type of usec2subsecx
- time.c (usec2subsecx): fix return type, which is a numeric
 object but not a long int. [ruby-dev:49912] [Bug #13066]
        
           Updated by nobu (Nobuyoshi Nakada) almost 9 years ago
          Updated by nobu (Nobuyoshi Nakada) almost 9 years ago
          
          
        
        
      
      - Backport changed from 2.1: REQUIRED, 2.2: REQUIRED, 2.3: REQUIRED to 2.1: REQUIRED, 2.2: REQUIRED, 2.3: REQUIRED, 2.4: REQUIRED
        
           Updated by usa (Usaku NAKAMURA) almost 9 years ago
          Updated by usa (Usaku NAKAMURA) almost 9 years ago
          
          
        
        
      
      - Backport changed from 2.1: REQUIRED, 2.2: REQUIRED, 2.3: REQUIRED, 2.4: REQUIRED to 2.1: REQUIRED, 2.2: DONE, 2.3: REQUIRED, 2.4: REQUIRED
ruby_2_2 r57225 merged revision(s) 57172.
        
           Updated by nagachika (Tomoyuki Chikanaga) over 8 years ago
          Updated by nagachika (Tomoyuki Chikanaga) over 8 years ago
          
          
        
        
      
      - Backport changed from 2.1: REQUIRED, 2.2: DONE, 2.3: REQUIRED, 2.4: REQUIRED to 2.1: REQUIRED, 2.2: DONE, 2.3: DONE, 2.4: REQUIRED
ruby_2_3 r57567 merged revision(s) 57172.
        
           Updated by naruse (Yui NARUSE) over 8 years ago
          Updated by naruse (Yui NARUSE) over 8 years ago
          
          
        
        
      
      - Backport changed from 2.1: REQUIRED, 2.2: DONE, 2.3: DONE, 2.4: REQUIRED to 2.1: REQUIRED, 2.2: DONE, 2.3: DONE, 2.4: DONE
ruby_2_4 r57830 merged revision(s) 57170-57172.
Actions