[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lojban] Someone wanna debug our jbofihe problems?



This problem is now fixed.

The code was using an invalid check for the mmap call failing that
worked on 32-bit machines but failed on 64-bit machines.

It would sometimes detect a success condition as an error and
abort, when in fact everything was working fine.

-Alan

On Fri, Sep 30, 2011 at 01:20:12PM -0700, Robin Lee Powell wrote:
> Yes, but unfortunately I have no idea what's causing it or how to
> fix it.  I'm told a reload usually clears it up.
> 
> Oh, huh, I can replicate on the command line.  Hmmm...
> 
> It happens about one time in five.
> 
> There is no memory pressure on the host.  There are no SELinux
> errors (in fact, turning SELinux off doesn't fix it).
> 
> I seriously have no idea what's up here at all.  Anyone who wants an account to
> investigate it is welcome to it.  An strace of a fail and then a good run are
> below (both are short).
> 
> Interestingly, it's not actually on the mmap that it fails.  *shrug*
> 
> -Robin
> 
> - -----------------------------------------------------------
> rlpowell@jukni> echo "mi klama" | strace -ff /usr/local/bin/jbofihe -x 2>&1                                     
> execve("/usr/local/bin/jbofihe", ["/usr/local/bin/jbofihe", "-x"], [/* 45 vars */]) = 0
> brk(0)                                  = 0xb84000
> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b77a4ead000
> access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
> open("/etc/ld.so.cache", O_RDONLY)      = 3
> fstat(3, {st_mode=S_IFREG|0644, st_size=35848, ...}) = 0
> mmap(NULL, 35848, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2b77a4eae000
> close(3)                                = 0
> open("/lib64/libc.so.6", O_RDONLY)      = 3
> read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260\24\2k6\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=1951736, ...}) = 0
> mmap(0x366b000000, 3773688, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x366b000000
> mprotect(0x366b18f000, 2097152, PROT_NONE) = 0
> mmap(0x366b38f000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18f000) = 0x366b38f000
> mmap(0x366b394000, 21752, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x366b394000
> close(3)                                = 0
> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b77a4eb7000
> mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b77a4eb8000
> arch_prctl(ARCH_SET_FS, 0x2b77a4eb7b40) = 0
> mprotect(0x366b38f000, 16384, PROT_READ) = 0
> mprotect(0x366ae1e000, 4096, PROT_READ) = 0
> munmap(0x2b77a4eae000, 35848)           = 0
> rt_sigaction(SIGABRT, {0x401920, [ABRT], SA_RESTORER|SA_RESTART, 0x366b035350}, {SIG_DFL, [], 0}, 8) = 0
> rt_sigaction(SIGBUS, {0x401920, [BUS], SA_RESTORER|SA_RESTART, 0x366b035350}, {SIG_DFL, [], 0}, 8) = 0
> rt_sigaction(SIGSEGV, {0x401920, [SEGV], SA_RESTORER|SA_RESTART, 0x366b035350}, {SIG_DFL, [], 0}, 8) = 0
> fstat(0, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b77a4eae000
> read(0, "mi klama\n", 4096)             = 9
> brk(0)                                  = 0xb84000
> brk(0xba5000)                           = 0xba5000
> brk(0)                                  = 0xba5000
> read(0, "", 4096)                       = 0
> fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b77a4eaf000
> open("/usr/local/lib/jbofihe/smujmaji.dat", O_RDONLY) = 3
> fstat(3, {st_mode=S_IFREG|0644, st_size=241214, ...}) = 0
> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b77a4eb0000
> read(3, "\0\0006B\5\4\5\5\5\5\5\4\5\5\4\4\4\6\5\5\4\6\5\6\5\3\4\6\4\4\4\5"..., 4096) = 4096
> mmap(NULL, 225280, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b77a4eba000
> read(3, "\4\4\4\5\5\5\4\5\4\7\4\6\4\4\4\10\5\4\5\10\4\6\5\6\4\10\4\4\5\7\4\5"..., 4096) = 4096
> read(3, "\3\3\5\5\5\5\5\5\5\5\5\5\4\3\7\3\6\4\5\3\7\3\3\2\5\5\5\3\10\4\5\4"..., 4096) = 4096
> read(3, "\5\5\4\5\5\5\5\5\4\5\4\5\4\5\5\5\4\5\4\5\5\5\5\5\5\5\5\5\5\5\4\5"..., 4096) = 4096
> read(3, "\6\24\5\5\6\t\6\10\6\32\7\f\5\5\6\7\6\20\5\7\6\t\6\6\6\r\5\4\6\6\6\16"..., 4096) = 4096
> read(3, "\6\37\7\r\6\"\7\17\5\f\6\v\6\16\5\6\6\10\6\25\7\v\5\5\6\16\6\10\5\5\6\7"..., 4096) = 4096
> read(3, "\6\21\5\5\6\17\6\5\6\22\6\23\5\10\6\n\6\v\6\32\6\r\5\3\6\7\6\r\6\24\5\6"..., 4096) = 4096
> fstat(3, {st_mode=S_IFREG|0644, st_size=241214, ...}) = 0
> lseek(3, 0, SEEK_CUR)                   = 28672
> mmap(NULL, 241214, PROT_READ, MAP_SHARED, 3, 0) = 0x2b77a4ef1000
> dup(2)                                  = 4
> fcntl(4, F_GETFL)                       = 0x8002 (flags O_RDWR|O_LARGEFILE)
> fstat(4, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b77a4f2c000
> lseek(4, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
> write(4, "Could not mmap the dictionary da"..., 35Could not mmap the dictionary data
> ) = 35
> write(4, ": Success\n", 10: Success
> )             = 10
> close(4)                                = 0
> munmap(0x2b77a4f2c000, 4096)            = 0
> write(1, "[([", 3[([)                      = 3
> exit_group(1)                           = ?
> - -----------------------------------------------------------
> rlpowell@jukni> echo "mi klama" | strace -ff /usr/local/bin/jbofihe -x 2>&1                                     
> execve("/usr/local/bin/jbofihe", ["/usr/local/bin/jbofihe", "-x"], [/* 45 vars */]) = 0
> brk(0)                                  = 0x10a5000
> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b9034160000
> access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
> open("/etc/ld.so.cache", O_RDONLY)      = 3
> fstat(3, {st_mode=S_IFREG|0644, st_size=35848, ...}) = 0
> mmap(NULL, 35848, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2b9034161000
> close(3)                                = 0
> open("/lib64/libc.so.6", O_RDONLY)      = 3
> read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260\24\2k6\0\0\0"..., 832) = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=1951736, ...}) = 0
> mmap(0x366b000000, 3773688, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x366b000000
> mprotect(0x366b18f000, 2097152, PROT_NONE) = 0
> mmap(0x366b38f000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18f000) = 0x366b38f000
> mmap(0x366b394000, 21752, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x366b394000
> close(3)                                = 0
> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b903416a000
> mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b903416b000
> arch_prctl(ARCH_SET_FS, 0x2b903416ab40) = 0
> mprotect(0x366b38f000, 16384, PROT_READ) = 0
> mprotect(0x366ae1e000, 4096, PROT_READ) = 0
> munmap(0x2b9034161000, 35848)           = 0
> rt_sigaction(SIGABRT, {0x401920, [ABRT], SA_RESTORER|SA_RESTART, 0x366b035350}, {SIG_DFL, [], 0}, 8) = 0
> rt_sigaction(SIGBUS, {0x401920, [BUS], SA_RESTORER|SA_RESTART, 0x366b035350}, {SIG_DFL, [], 0}, 8) = 0
> rt_sigaction(SIGSEGV, {0x401920, [SEGV], SA_RESTORER|SA_RESTART, 0x366b035350}, {SIG_DFL, [], 0}, 8) = 0
> fstat(0, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b9034161000
> read(0, "mi klama\n", 4096)             = 9
> brk(0)                                  = 0x10a5000
> brk(0x10c6000)                          = 0x10c6000
> brk(0)                                  = 0x10c6000
> read(0, "", 4096)                       = 0
> fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b9034162000
> open("/usr/local/lib/jbofihe/smujmaji.dat", O_RDONLY) = 3
> fstat(3, {st_mode=S_IFREG|0644, st_size=241214, ...}) = 0
> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b9034163000
> read(3, "\0\0006B\5\4\5\5\5\5\5\4\5\5\4\4\4\6\5\5\4\6\5\6\5\3\4\6\4\4\4\5"..., 4096) = 4096
> mmap(NULL, 225280, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b903416d000
> read(3, "\4\4\4\5\5\5\4\5\4\7\4\6\4\4\4\10\5\4\5\10\4\6\5\6\4\10\4\4\5\7\4\5"..., 4096) = 4096
> read(3, "\3\3\5\5\5\5\5\5\5\5\5\5\4\3\7\3\6\4\5\3\7\3\3\2\5\5\5\3\10\4\5\4"..., 4096) = 4096
> read(3, "\5\5\4\5\5\5\5\5\4\5\4\5\4\5\5\5\4\5\4\5\5\5\5\5\5\5\5\5\5\5\4\5"..., 4096) = 4096
> read(3, "\6\24\5\5\6\t\6\10\6\32\7\f\5\5\6\7\6\20\5\7\6\t\6\6\6\r\5\4\6\6\6\16"..., 4096) = 4096
> read(3, "\6\37\7\r\6\"\7\17\5\f\6\v\6\16\5\6\6\10\6\25\7\v\5\5\6\16\6\10\5\5\6\7"..., 4096) = 4096
> read(3, "\6\21\5\5\6\17\6\5\6\22\6\23\5\10\6\n\6\v\6\32\6\r\5\3\6\7\6\r\6\24\5\6"..., 4096) = 4096
> fstat(3, {st_mode=S_IFREG|0644, st_size=241214, ...}) = 0
> lseek(3, 0, SEEK_CUR)                   = 28672
> mmap(NULL, 241214, PROT_READ, MAP_SHARED, 3, 0) = 0x2b90341a4000
> lseek(3, 27784, SEEK_SET)               = 27784
> close(3)                                = 0
> munmap(0x2b9034163000, 4096)            = 0
> write(1, "[([klama1 (go-er(s)):] mi", 25[([klama1 (go-er(s)):] mi) = 25
> write(1, " /I, me/) /[is, does]/ <<klama", 30 /I, me/) /[is, does]/ <<klama) = 30
> write(1, " /go-ing/>>]\n", 13 /go-ing/>>]
> )          = 13
> exit_group(0)                           = ?
> - -----------------------------------------------------------
> 
> -- 
> You received this message because you are subscribed to the Google Groups "lojban" group.
> To post to this group, send email to lojban@googlegroups.com.
> To unsubscribe from this group, send email to lojban+unsubscribe@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/lojban?hl=en.
> 

-- 
.i ma'a lo bradi cu penmi gi'e du

-- 
You received this message because you are subscribed to the Google Groups "lojban" group.
To post to this group, send email to lojban@googlegroups.com.
To unsubscribe from this group, send email to lojban+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/lojban?hl=en.