Re: [GHC] #4993: getDirectoryContents goes into an infinite loop

2011-03-03 Thread GHC
#4993: getDirectoryContents goes into an infinite loop
--+-
  Reporter:  bos  |  Owner:
  Type:  bug  | Status:  closed
  Priority:  normal   |  Milestone:
 Component:  libraries/directory  |Version:  7.0.1 
Resolution:  invalid  |   Keywords:
  Testcase:   |  Blockedby:
Difficulty:   | Os:  Linux 
  Blocking:   |   Architecture:  x86   
   Failure:  Runtime crash|  
--+-

Comment(by simonmar):

 Wow, fascinating.  Nice catch, glad it wasn't our fault :)

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/4993#comment:3
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler

___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #4993: getDirectoryContents goes into an infinite loop

2011-03-02 Thread GHC
#4993: getDirectoryContents goes into an infinite loop
---+
 Reporter:  bos|  Owner: 
 Type:  bug| Status:  closed 
 Priority:  normal |  Component:  libraries/directory
  Version:  7.0.1  | Resolution:  invalid
 Keywords: |   Testcase: 
Blockedby: | Os:  Linux  
 Blocking: |   Architecture:  x86
  Failure:  Runtime crash  |  
---+
Changes (by bos):

  * status:  new = closed
  * resolution:  = invalid


Comment:

 I've got it figured out. It's not a GHC bug, and it's quite subtle.

 So. On a 32-bit system, glibc relies on being able to do tricks like
 %gs:-1234 to get negative offsets from the TLS (thread-local storage)
 base. But in fact that's really gsbase + (big positive number), and glibc
 relies on wraparound to get the resulting negative value. But the CPU only
 does that iff the segment limit is a full 4G.

 Under Xen, segments are clipped to protect the hypervisor, so we need a
 version of glibc which spends a couple more instructions to compute the
 negative offset without relying on segment wrapping.

 This is done via an {{{ld.so.conf}}} entry:

 {{{
 hwcap 1 nosegneg
 }}}

 The above directs {{{ldconfig}}} and {{{ld.so}}} to use the Xen-friendly
 version of glibc.

 So this isn't really a GHC bug at all, but perhaps a boxgrinder bug. In
 any case, the symptom is appearing in GHC :-(

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/4993#comment:1
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler

___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #4993: getDirectoryContents goes into an infinite loop

2011-03-02 Thread GHC
#4993: getDirectoryContents goes into an infinite loop
---+
 Reporter:  bos|  Owner: 
 Type:  bug| Status:  closed 
 Priority:  normal |  Component:  libraries/directory
  Version:  7.0.1  | Resolution:  invalid
 Keywords: |   Testcase: 
Blockedby: | Os:  Linux  
 Blocking: |   Architecture:  x86
  Failure:  Runtime crash  |  
---+

Comment(by bos):

 I filed a bug against boxgrinder:
 https://issues.jboss.org/browse/BGBUILD-172

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/4993#comment:2
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler

___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs