Re: Tmpfs panic in -current

2012-06-28 Thread Gleb Kurtsou
On (27/06/2012 13:29), Kevin Lo wrote:
 Kevin Lo wrote:
  Konstantin Belousov wrote:
   On Tue, Jun 26, 2012 at 12:38:25PM +0800, Kevin Lo wrote:
Konstantin Belousov wrote:
 On Mon, Jun 25, 2012 at 10:03:28AM +0800, Kevin Lo wrote:
  I've observed a panic in recent -current several times but I only
  have a picture of the backtrace:
  http://people.freebsd.org/~kevlo/panic_tmpfs.jpg
  
  Does this look at all familiar to anyone?
 
 Can you look up the line corresponding to tmpfs_reg_resize + 0x627 
 address
 in your kernel ?

Sure.

 The screenshot looks strange. The instruction on which the kernel 
 trapped
 is int 0x28 which should not appear in the compiled code.

Kevin, do you have fuse modules loaded? It looks much like memmory
corruption issue.

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: Tmpfs panic in -current

2012-06-28 Thread Kevin Lo
On 四, 2012-06-28 at 10:09 +0300, Gleb Kurtsou wrote:
 On (27/06/2012 13:29), Kevin Lo wrote:
  Kevin Lo wrote:
   Konstantin Belousov wrote:
On Tue, Jun 26, 2012 at 12:38:25PM +0800, Kevin Lo wrote:
 Konstantin Belousov wrote:
  On Mon, Jun 25, 2012 at 10:03:28AM +0800, Kevin Lo wrote:
   I've observed a panic in recent -current several times but I only
   have a picture of the backtrace:
   http://people.freebsd.org/~kevlo/panic_tmpfs.jpg
   
   Does this look at all familiar to anyone?
  
  Can you look up the line corresponding to tmpfs_reg_resize + 0x627 
  address
  in your kernel ?
 
 Sure.
 
  The screenshot looks strange. The instruction on which the kernel 
  trapped
  is int 0x28 which should not appear in the compiled code.
 
 Kevin, do you have fuse modules loaded? It looks much like memmory
 corruption issue.

No, I don't have that module loaded.
# kldstat
Id Refs AddressSize Name
 1   14 0xc040 bab9e8   kernel
 21 0xc0fac000 1d58 msdosfs_iconv.ko
 32 0xc0fae000 67a8 libiconv.ko
 41 0xc728e000 9000 tmpfs.ko
 51 0xc789b000 4000 uhid.ko



___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: Tmpfs panic in -current

2012-06-27 Thread Konstantin Belousov
On Wed, Jun 27, 2012 at 01:29:14PM +0800, Kevin Lo wrote:
 Kevin Lo wrote:
  Konstantin Belousov wrote:
   On Tue, Jun 26, 2012 at 12:38:25PM +0800, Kevin Lo wrote:
Konstantin Belousov wrote:
 On Mon, Jun 25, 2012 at 10:03:28AM +0800, Kevin Lo wrote:
  I've observed a panic in recent -current several times but I only
  have a picture of the backtrace:
  http://people.freebsd.org/~kevlo/panic_tmpfs.jpg
  
  Does this look at all familiar to anyone?
 
 Can you look up the line corresponding to tmpfs_reg_resize + 0x627 
 address
 in your kernel ?

Sure.

 The screenshot looks strange. The instruction on which the kernel 
 trapped
 is int 0x28 which should not appear in the compiled code.

# gdb tmpfs.ko
(gdb) l *tmpfs_reg_resize+0x627
0xbf37 is in tmpfs_reg_resize 
(/usr/src/sys/modules/tmpfs/../../fs/tmpfs/tmpfs_subr.c:1005).
1000in /usr/src/sys/modules/tmpfs/../../fs/tmpfs/tmpfs_subr.c

In tmpfs_subr.c:
 999 if (m != NULL) {
1000 if ((m-oflags  VPO_BUSY) != 0 ||
1001 m-busy != 0) {
1002 vm_page_sleep(m, tmfssz);
1003 goto retry;
1004 }
1005 MPASS(m-valid == 
VM_PAGE_BITS_ALL);
1006 } else if (vm_pager_has_page(uobj, idx, 
NULL, NU
LL)) {

   Hm, can you get a core and
   - obtain backtrace in kgdb;
   - print the *m content for the page that triggered the assertion ?
   
   The only possible 'new size' value for the truncation from open(2) is 
   zero,
   so I do not understand why the asserted block was executed at all.
  
  Thanks for looking into it. Unfortunately I can't get a crash dump 
  due to lack of disk space and memory.
 
 I triggered the KASSERT on a different machine in the last hour.
It is not 'the' KASSERT, it is something different.

Are you sure that you do not have some systematic build issues on your
machines ? Although I do not think that tmpfs is 'ready for production use'
for arbitrary low value of this statement, there is no steady flow of
similar reports from other users. This makes me somewhat suspicious that
either you might have inconsistent build issues, or unrelated memory
corruption problems.

 
 panic: Assertion (vp) !=NULL  (vp)-v_data != NULL failed at 
 @/fs/tmpfs/tmpfs.h:527
 
 The bad news is my coworker rebooted that machine after panic :-(
 
   Kevin


pgpNw7ZYZRW88.pgp
Description: PGP signature


Re: Tmpfs panic in -current

2012-06-27 Thread Kevin Lo
Konstantin Belousov wrote:
 On Wed, Jun 27, 2012 at 01:29:14PM +0800, Kevin Lo wrote:
  Kevin Lo wrote:
   Konstantin Belousov wrote:
On Tue, Jun 26, 2012 at 12:38:25PM +0800, Kevin Lo wrote:
 Konstantin Belousov wrote:
  On Mon, Jun 25, 2012 at 10:03:28AM +0800, Kevin Lo wrote:
   I've observed a panic in recent -current several times but I only
   have a picture of the backtrace:
   http://people.freebsd.org/~kevlo/panic_tmpfs.jpg
   
   Does this look at all familiar to anyone?
  
  Can you look up the line corresponding to tmpfs_reg_resize + 0x627 
  address
  in your kernel ?
 
 Sure.
 
  The screenshot looks strange. The instruction on which the kernel 
  trapped
  is int 0x28 which should not appear in the compiled code.
 
 # gdb tmpfs.ko
 (gdb) l *tmpfs_reg_resize+0x627
 0xbf37 is in tmpfs_reg_resize 
 (/usr/src/sys/modules/tmpfs/../../fs/tmpfs/tmpfs_subr.c:1005).
 1000in /usr/src/sys/modules/tmpfs/../../fs/tmpfs/tmpfs_subr.c
 
 In tmpfs_subr.c:
  999 if (m != NULL) {
 1000 if ((m-oflags  VPO_BUSY) != 0 
 ||
 1001 m-busy != 0) {
 1002 vm_page_sleep(m, 
 tmfssz);
 1003 goto retry;
 1004 }
 1005 MPASS(m-valid == 
 VM_PAGE_BITS_ALL);
 1006 } else if (vm_pager_has_page(uobj, idx, 
 NULL, NU
 LL)) {
 
Hm, can you get a core and
- obtain backtrace in kgdb;
- print the *m content for the page that triggered the assertion ?

The only possible 'new size' value for the truncation from open(2) is 
zero,
so I do not understand why the asserted block was executed at all.
   
   Thanks for looking into it. Unfortunately I can't get a crash dump 
   due to lack of disk space and memory.
  
  I triggered the KASSERT on a different machine in the last hour.
 It is not 'the' KASSERT, it is something different.
 
 Are you sure that you do not have some systematic build issues on your
 machines ? Although I do not think that tmpfs is 'ready for production use'
 for arbitrary low value of this statement, there is no steady flow of
 similar reports from other users. This makes me somewhat suspicious that
 either you might have inconsistent build issues, or unrelated memory
 corruption problems.

As I mentioned, I'm running -CURRENT on a number of systems.
I haven't seen tmpfs panics on machines running FreeBSD 9.

Kevin

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: Tmpfs panic in -current

2012-06-26 Thread Konstantin Belousov
On Tue, Jun 26, 2012 at 12:38:25PM +0800, Kevin Lo wrote:
 Konstantin Belousov wrote:
  On Mon, Jun 25, 2012 at 10:03:28AM +0800, Kevin Lo wrote:
   I've observed a panic in recent -current several times but I only
   have a picture of the backtrace:
   http://people.freebsd.org/~kevlo/panic_tmpfs.jpg
   
   Does this look at all familiar to anyone?
  
  Can you look up the line corresponding to tmpfs_reg_resize + 0x627 address
  in your kernel ?
 
 Sure.
 
  The screenshot looks strange. The instruction on which the kernel trapped
  is int 0x28 which should not appear in the compiled code.
 
 # gdb tmpfs.ko
 (gdb) l *tmpfs_reg_resize+0x627
 0xbf37 is in tmpfs_reg_resize 
 (/usr/src/sys/modules/tmpfs/../../fs/tmpfs/tmpfs_subr.c:1005).
 1000in /usr/src/sys/modules/tmpfs/../../fs/tmpfs/tmpfs_subr.c
 
 In tmpfs_subr.c:
  999 if (m != NULL) {
 1000 if ((m-oflags  VPO_BUSY) != 0 ||
 1001 m-busy != 0) {
 1002 vm_page_sleep(m, tmfssz);
 1003 goto retry;
 1004 }
 1005 MPASS(m-valid == VM_PAGE_BITS_ALL);
 1006 } else if (vm_pager_has_page(uobj, idx, NULL, NU
 LL)) {
 
Hm, can you get a core and
- obtain backtrace in kgdb;
- print the *m content for the page that triggered the assertion ?

The only possible 'new size' value for the truncation from open(2) is zero,
so I do not understand why the asserted block was executed at all.


pgpcAmL5mkan1.pgp
Description: PGP signature


Re: Tmpfs panic in -current

2012-06-26 Thread Kevin Lo
Konstantin Belousov wrote:
 On Tue, Jun 26, 2012 at 12:38:25PM +0800, Kevin Lo wrote:
  Konstantin Belousov wrote:
   On Mon, Jun 25, 2012 at 10:03:28AM +0800, Kevin Lo wrote:
I've observed a panic in recent -current several times but I only
have a picture of the backtrace:
http://people.freebsd.org/~kevlo/panic_tmpfs.jpg

Does this look at all familiar to anyone?
   
   Can you look up the line corresponding to tmpfs_reg_resize + 0x627 address
   in your kernel ?
  
  Sure.
  
   The screenshot looks strange. The instruction on which the kernel trapped
   is int 0x28 which should not appear in the compiled code.
  
  # gdb tmpfs.ko
  (gdb) l *tmpfs_reg_resize+0x627
  0xbf37 is in tmpfs_reg_resize 
  (/usr/src/sys/modules/tmpfs/../../fs/tmpfs/tmpfs_subr.c:1005).
  1000in /usr/src/sys/modules/tmpfs/../../fs/tmpfs/tmpfs_subr.c
  
  In tmpfs_subr.c:
   999 if (m != NULL) {
  1000 if ((m-oflags  VPO_BUSY) != 0 ||
  1001 m-busy != 0) {
  1002 vm_page_sleep(m, tmfssz);
  1003 goto retry;
  1004 }
  1005 MPASS(m-valid == VM_PAGE_BITS_ALL);
  1006 } else if (vm_pager_has_page(uobj, idx, NULL, 
  NU
  LL)) {
  
 Hm, can you get a core and
 - obtain backtrace in kgdb;
 - print the *m content for the page that triggered the assertion ?
 
 The only possible 'new size' value for the truncation from open(2) is zero,
 so I do not understand why the asserted block was executed at all.

Thanks for looking into it. Unfortunately I can't get a crash dump 
due to lack of disk space and memory.

Kevin

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: Tmpfs panic in -current

2012-06-26 Thread Kevin Lo
Kevin Lo wrote:
 Konstantin Belousov wrote:
  On Tue, Jun 26, 2012 at 12:38:25PM +0800, Kevin Lo wrote:
   Konstantin Belousov wrote:
On Mon, Jun 25, 2012 at 10:03:28AM +0800, Kevin Lo wrote:
 I've observed a panic in recent -current several times but I only
 have a picture of the backtrace:
 http://people.freebsd.org/~kevlo/panic_tmpfs.jpg
 
 Does this look at all familiar to anyone?

Can you look up the line corresponding to tmpfs_reg_resize + 0x627 
address
in your kernel ?
   
   Sure.
   
The screenshot looks strange. The instruction on which the kernel 
trapped
is int 0x28 which should not appear in the compiled code.
   
   # gdb tmpfs.ko
   (gdb) l *tmpfs_reg_resize+0x627
   0xbf37 is in tmpfs_reg_resize 
   (/usr/src/sys/modules/tmpfs/../../fs/tmpfs/tmpfs_subr.c:1005).
   1000in /usr/src/sys/modules/tmpfs/../../fs/tmpfs/tmpfs_subr.c
   
   In tmpfs_subr.c:
999 if (m != NULL) {
   1000 if ((m-oflags  VPO_BUSY) != 0 ||
   1001 m-busy != 0) {
   1002 vm_page_sleep(m, tmfssz);
   1003 goto retry;
   1004 }
   1005 MPASS(m-valid == VM_PAGE_BITS_ALL);
   1006 } else if (vm_pager_has_page(uobj, idx, 
   NULL, NU
   LL)) {
   
  Hm, can you get a core and
  - obtain backtrace in kgdb;
  - print the *m content for the page that triggered the assertion ?
  
  The only possible 'new size' value for the truncation from open(2) is zero,
  so I do not understand why the asserted block was executed at all.
 
 Thanks for looking into it. Unfortunately I can't get a crash dump 
 due to lack of disk space and memory.

I triggered the KASSERT on a different machine in the last hour.

panic: Assertion (vp) !=NULL  (vp)-v_data != NULL failed at 
@/fs/tmpfs/tmpfs.h:527

The bad news is my coworker rebooted that machine after panic :-(

Kevin

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: Tmpfs panic in -current

2012-06-25 Thread Konstantin Belousov
On Mon, Jun 25, 2012 at 10:03:28AM +0800, Kevin Lo wrote:
 I've observed a panic in recent -current several times but I only
 have a picture of the backtrace:
 http://people.freebsd.org/~kevlo/panic_tmpfs.jpg
 
 Does this look at all familiar to anyone?

Can you look up the line corresponding to tmpfs_reg_resize + 0x627 address
in your kernel ?

The screenshot looks strange. The instruction on which the kernel trapped
is int 0x28 which should not appear in the compiled code.


pgp3Si8Kma4hb.pgp
Description: PGP signature


Re: Tmpfs panic in -current

2012-06-25 Thread Marcelo Araujo
Hello Kevin,

May you rebuild your kernel with some options that will make the dump of
the crash easier to send to people?
Try to follow these steps:
1) Configure KERNEL with the folowing options:
options KDB
options GDB
options DDB

2) Configure rc.conf:
dumpdev=/dev/ad0s1b #Your swap slice.
dumpdir=/var/crash  #By default.
crashinfo_enable=YES
crashinfo_program=/usr/sbin/crashinfo

3) When the FreeBSD crash, it won't rebut, but will be stop on a gdb prompt.
3.1) gdb continue
3.2) gdb dump

4) kgdb /boot/kernel/kernel.symbols /var/crash/vmcore.0
5) kgdb backtrace
6) kgdb up 4
7) kgdb up

6 -- Up to line number 4.
7 -- Up to the next line.


Best Regards,
- Araujo


2012/6/25 Konstantin Belousov kostik...@gmail.com

 On Mon, Jun 25, 2012 at 10:03:28AM +0800, Kevin Lo wrote:
  I've observed a panic in recent -current several times but I only
  have a picture of the backtrace:
  http://people.freebsd.org/~kevlo/panic_tmpfs.jpg
 
  Does this look at all familiar to anyone?

 Can you look up the line corresponding to tmpfs_reg_resize + 0x627 address
 in your kernel ?

 The screenshot looks strange. The instruction on which the kernel trapped
 is int 0x28 which should not appear in the compiled code.




-- 
Marcelo Araujo
ara...@freebsd.org
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: Tmpfs panic in -current

2012-06-25 Thread Kevin Lo
Konstantin Belousov wrote:
 On Mon, Jun 25, 2012 at 10:03:28AM +0800, Kevin Lo wrote:
  I've observed a panic in recent -current several times but I only
  have a picture of the backtrace:
  http://people.freebsd.org/~kevlo/panic_tmpfs.jpg
  
  Does this look at all familiar to anyone?
 
 Can you look up the line corresponding to tmpfs_reg_resize + 0x627 address
 in your kernel ?

Sure.

 The screenshot looks strange. The instruction on which the kernel trapped
 is int 0x28 which should not appear in the compiled code.

# gdb tmpfs.ko
(gdb) l *tmpfs_reg_resize+0x627
0xbf37 is in tmpfs_reg_resize 
(/usr/src/sys/modules/tmpfs/../../fs/tmpfs/tmpfs_subr.c:1005).
1000in /usr/src/sys/modules/tmpfs/../../fs/tmpfs/tmpfs_subr.c

In tmpfs_subr.c:
 999 if (m != NULL) {
1000 if ((m-oflags  VPO_BUSY) != 0 ||
1001 m-busy != 0) {
1002 vm_page_sleep(m, tmfssz);
1003 goto retry;
1004 }
1005 MPASS(m-valid == VM_PAGE_BITS_ALL);
1006 } else if (vm_pager_has_page(uobj, idx, NULL, NU
LL)) {

Thanks!

Kevin

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Tmpfs panic in -current

2012-06-24 Thread Kevin Lo
I've observed a panic in recent -current several times but I only
have a picture of the backtrace:
http://people.freebsd.org/~kevlo/panic_tmpfs.jpg

Does this look at all familiar to anyone?

Kevin

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org