On 8/16/12 12:08 PM, Nicholas Clark wrote:
On Tue, Aug 14, 2012 at 10:48:31PM -0400, James E Keenan wrote:

Test 28 in t/pmc/filehandle.t is that weird test which, as I've reported
several times, gives me this output under 'prove -v':

#####
not ok 28 - write after buffered read # TODO GH #811 Write error: No
space left on device on swap fs

#   Failed (TODO) test 'write after buffered read'
#   at t/pmc/filehandle.t line 927.
# Exited with error code: 1
# Received:
# 10
# Write error: No space left on device
# current instr.: 'test' pc 69
(/Users/jimk/gitwork/parrot/t/pmc/filehandle_28.pir:18)
#
# Expected:
# 10
# abcde#####klmno
#
#####



4294967286 isn't -10. There's a sign extension problem somewhere.


Presumably as you're on PPC Darwin you're still on an version of OS X
with ktrace and kdump. I guess that they'd show a similar problem with
(not) -10


$> ktrace ./parrot t/pmc/filehandle_28.pir
$> kdump | tail -100 > tail_t_pmc_filehandle_28_pir_ktrace_dump

So here (attached) is the last 100 lines of the kdump. I can send Nick or anyone else who can decipher this the full output.

Thank you very much.
Jim Keenan
 13352 parrot   NAMI  "t/pmc/filehandle_28.pir"
 13352 parrot   RET   open 3
 13352 parrot   CALL  fstat(0x3,0xbfffe914)
 13352 parrot   RET   fstat 0
 13352 parrot   CALL  sigprocmask(0x1,0,0x306e29c)
 13352 parrot   RET   sigprocmask 0
 13352 parrot   CALL  read(0x3,0xf9000,0x2000)
 13352 parrot   GIO   fd 3 read 354 bytes
       ".sub test :main
            .local pmc fh
            .local string str
            .local int pos
        
            fh = new 'FileHandle'
            fh.'open'('/tmp/dMWD44zXQv', 'rw')
        
            fh.'print'('abcdefghijklmno')
            fh.'seek'(0, 0)
        
            fh.'read'(5)
            fh.'print'('#####')
        
            pos = fh.'tell'()
            say pos
        
            fh.'seek'(0, 0)
            str = fh.'readall'()
            say str
        
            fh.'close'()
        .end
       "
 13352 parrot   RET   read 354/0x162
 13352 parrot   CALL  read(0x3,0xf9001,0x2000)
 13352 parrot   GIO   fd 3 read 0 bytes
       ""
 13352 parrot   RET   read 0
 13352 parrot   CALL  fsync(0x3)
 13352 parrot   RET   fsync 0
 13352 parrot   CALL  close(0x3)
 13352 parrot   RET   close 0
 13352 parrot   CALL  open(0x1108050,0x602,0x1a4)
 13352 parrot   NAMI  "/tmp/dMWD44zXQv"
 13352 parrot   RET   open 3
 13352 parrot   CALL  fstat(0x3,0xbfffeaf4)
 13352 parrot   RET   fstat 0
 13352 parrot   CALL  ioctl(0x3,0x4004667a ,0xbfffead8)
 13352 parrot   RET   ioctl -1 errno 25 Inappropriate ioctl for device
 13352 parrot   CALL  ioctl(0x3,0x402c7413 ,0xbfffeadc)
 13352 parrot   RET   ioctl -1 errno 25 Inappropriate ioctl for device
 13352 parrot   CALL  write(0x3,0x307f000,0xf)
 13352 parrot   GIO   fd 3 wrote 15 bytes
       "abcdefghijklmno"
 13352 parrot   RET   write 15/0xf
 13352 parrot   CALL  lseek(0x3,0,0)
 13352 parrot   RET   lseek 0
 13352 parrot   CALL  read(0x3,0x307e800,0x800)
 13352 parrot   GIO   fd 3 read 15 bytes
       "abcdefghijklmno"
 13352 parrot   RET   read 15/0xf
 13352 parrot   CALL  lseek(0x3,0xfffffff6,0x1)
 13352 parrot   RET   lseek 1
 13352 parrot   CALL  write(0x1,0x1106a10,0x3)
 13352 parrot   GIO   fd 1 wrote 3 bytes
       "10
       "
 13352 parrot   RET   write 3
 13352 parrot   CALL  write(0x3,0x307f000,0x5)
 13352 parrot   RET   write -1 errno 28 No space left on device
 13352 parrot   CALL  sigprocmask(0x3,0xbfffe9f8,0xbfffe9b8)
 13352 parrot   RET   sigprocmask 0
 13352 parrot   CALL  sigprocmask(0x1,0,0x307a870)
 13352 parrot   RET   sigprocmask 0
 13352 parrot   CALL  write(0x2,0x2c893c,0x25)
 13352 parrot   GIO   fd 2 wrote 37 bytes
       "Write error: No space left on device
       "
 13352 parrot   RET   write 37/0x25
 13352 parrot   CALL  write(0x2,0x2c8e30,0x39)
 13352 parrot   GIO   fd 2 wrote 57 bytes
       "current instr.: 'test' pc 69 (t/pmc/filehandle_28.pir:18)"
 13352 parrot   RET   write 57/0x39
 13352 parrot   CALL  write(0x2,0x2c8ef4,0x1)
 13352 parrot   GIO   fd 2 wrote 1 byte
       "
       "
 13352 parrot   RET   write 1
 13352 parrot   CALL  fsync(0x1)
 13352 parrot   RET   fsync 0
 13352 parrot   CALL  fsync(0x2)
 13352 parrot   RET   fsync 0
 13352 parrot   CALL  sigprocmask(0x3,0xbfffec08,0xbfffebc8)
 13352 parrot   RET   sigprocmask 0
 13352 parrot   CALL  sigprocmask(0x1,0,0xbffff2dc)
 13352 parrot   RET   sigprocmask 0
 13352 parrot   CALL  sigprocmask(0x1,0,0xbffff2f0)
 13352 parrot   RET   sigprocmask 0
 13352 parrot   CALL  fsync(0x1)
 13352 parrot   RET   fsync 0
 13352 parrot   CALL  exit(0x1)
_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev

Reply via email to