Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • GHC GHC
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 5,400
    • Issues 5,400
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 590
    • Merge requests 590
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Glasgow Haskell CompilerGlasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #17289
Closed
Open
Issue created Oct 01, 2019 by Ben Gamari@bgamari🐢Maintainer

Data race between setNumCapabilities and itimer

While looking at !1603 (closed)

==================                                                                                                                
WARNING: ThreadSanitizer: data race (pid=5135)  
  Atomic write of size 4 at 0x7b6400001328 by thread T2:                                                                                                                                                                                                                                  
    #0 __tsan_atomic32_store <null> (libtsan.so.0+0x000000061bf1)                                                                                                                                                                                                                         
    #1 contextSwitchCapability rts/Capability.h:473 (nursery-chunks1+0x00000072566d)                                                
    #2 contextSwitchAllCapabilities rts/Capability.c:449 (nursery-chunks1+0x00000072566d)                                                                                                                                                                                                 
    #3 handle_tick rts/Timer.c:49 (nursery-chunks1+0x00000073e13f)                                                                        
    #4 itimer_thread_func rts/posix/itimer/Pthread.c:148 (nursery-chunks1+0x00000075eefc)                                                                                                                                                                                                 
    #5 <null> <null> (libtsan.so.0+0x000000028d5b)                                                                                        
                                                                                                                                     
  Previous write of size 8 at 0x7b6400001328 by main thread:
    #0 malloc <null> (libtsan.so.0+0x00000002b251)                                                                                                                                                                                                                                        
    #1 stgMallocBytes rts/RtsUtils.c:64 (nursery-chunks1+0x00000072cd0b)                                                                              
    #2 moreCapabilities rts/Capability.c:425 (nursery-chunks1+0x000000725321)                                                                                                                                                                                                            
    #3 setNumCapabilities rts/Schedule.c:2251 (nursery-chunks1+0x0000007339e5)                                                                                                                                                                                                           
    #4 Main_main1_info <null> (nursery-chunks1+0x00000041318e)                                                                                                                                                                                                                            
    #5 scheduleWaitThread rts/Schedule.c:2555 (nursery-chunks1+0x0000007343cd)                                                                              
    #6 rts_evalLazyIO rts/RtsAPI.c:530 (nursery-chunks1+0x00000077bd51)                                                                          
    #7 hs_main rts/RtsMain.c:72 (nursery-chunks1+0x00000072bab5)                                                                                                                                                                                                                         
    #8 main <null> (nursery-chunks1+0x000000413389)                                                                                                                                                                                                                                       
                                                                                                                                                      
  Location is heap block of size 1280 at 0x7b6400000f00 allocated by main thread:                                                                    
    #0 malloc <null> (libtsan.so.0+0x00000002b251)               
    #1 stgMallocBytes rts/RtsUtils.c:64 (nursery-chunks1+0x00000072cd0b)                                                                                                                                                                                                                  
    #2 moreCapabilities rts/Capability.c:425 (nursery-chunks1+0x000000725321)                                                                                                                                                                                                             
    #3 setNumCapabilities rts/Schedule.c:2251 (nursery-chunks1+0x0000007339e5)                                                                   
    #4 Main_main1_info <null> (nursery-chunks1+0x00000041318e)                                                 
    #5 scheduleWaitThread rts/Schedule.c:2555 (nursery-chunks1+0x0000007343cd)                                                                                                                                                                                                            
    #6 rts_evalLazyIO rts/RtsAPI.c:530 (nursery-chunks1+0x00000077bd51)                                                                                                                                                                                                                   
    #7 hs_main rts/RtsMain.c:72 (nursery-chunks1+0x00000072bab5)                                                                                
    #8 main <null> (nursery-chunks1+0x000000413389)                                                                
                                                                                                                                                                                                                                                                                          
  Thread T2 'ghc_ticker' (tid=5138, running) created by main thread at:                                                                      
    #0 pthread_create <null> (libtsan.so.0+0x00000002c010)                                                                                                                                                                                                                               
    #1 initTicker rts/posix/itimer/Pthread.c:171 (nursery-chunks1+0x00000075f0c0)
    #2 initTimer rts/Timer.c:112 (nursery-chunks1+0x00000073ded2)                                                                                                                                                                                                                         
    #3 hs_init_ghc rts/RtsStartup.c:310 (nursery-chunks1+0x00000072c9d5)                                                                                                                                                                                                                  
    #4 hs_main rts/RtsMain.c:57 (nursery-chunks1+0x00000072ba8b)                                                                                                                                                                                                                         
    #5 main <null> (nursery-chunks1+0x000000413389)           
                                                                                                                                                                                                                                                                                          
SUMMARY: ThreadSanitizer: data race (/nix/store/c7hj2bk4aqgpb3q0h5xhq7lag0lq3jm7-gcc-7.4.0-lib/lib/libtsan.so.0+0x61bf1) in __tsan_atomic32_store
Edited Oct 01, 2019 by Ben Gamari
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking