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