Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Apr 2009 10:40:13 +0100 (BST)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        pluknet <pluknet@gmail.com>
Cc:        FreeBSD Net <freebsd-net@freebsd.org>
Subject:   Re: panic in soabort
Message-ID:  <alpine.BSF.2.00.0904231038550.54334@fledge.watson.org>
In-Reply-To: <a31046fc0904230118m184b50adnd2cebb4d610f94ca@mail.gmail.com>
References:  <a31046fc0904230118m184b50adnd2cebb4d610f94ca@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 23 Apr 2009, pluknet wrote:

> Please, give me comment on this. The panic is on 6.2-REL. Is it known to be 
> fixed in the latter releases?

It may well be -- there have been quite significant architectural improvements 
to socket life cycle (etc) between 6.2 and 7.x releases, which may well close 
the race causing this panic.  However, we'll probably need to learn a bit more 
in order to decide for sure.  Could you convert the trapping instruction 
pointer to file+offset in the source code?

Robert N M Watson
Computer Laboratory
University of Cambridge

>
> Thanks.
>
> db> bt
> Tracing pid 14677 tid 101677 td 0xcf8e2640
> _mtx_lock_sleep(ce7b9a30,cf8e2640,0,0,0) at _mtx_lock_sleep+0x9d
> soabort(ce7b99bc) at soabort+0x82
> soclose(c83a2858) at soclose+0x21a
> soo_close(cf1c8750,cf8e2640) at soo_close+0x63
> fdrop_locked(cf1c8750,cf8e2640,cb18d400,f1872cb4,c06607eb,...) at
> fdrop_locked+0xac
> fdrop(cf1c8750,cf8e2640,c991b5a0,cf8e2640,0,...) at fdrop+0x41
> closef(cf1c8750,cf8e2640,0,cf8e2640,a,...) at closef+0x42f
> close(cf8e2640,f1872d04) at close+0x211
> syscall(816003b,816003b,bfbf003b,8151034,811a434,...) at syscall+0x2bf
> Xint0x80_syscall() at Xint0x80_syscall+0x1f
> --- syscall (6, FreeBSD ELF32, close), eip = 0x2832230f, esp =
> 0xbfbfe6dc, ebp = 0xbfbfe6f8 ---
>
> db> show msgbuf
> msgbufp = 0xc1042fe4
> magic = 63062, size = 65508, r= 388996, w = 389463, ptr = 0xc1033000,
> cksum= 5411375
> kernel trap 12 with interrupts disabled
>
>
> Fatal trap 12: page fault while in kernel mode
> cpuid = 5; apic id = 05
> fault virtual address   = 0x104
> fault code              = supervisor read, page not present
> instruction pointer     = 0x20:0xc067a01d
> stack pointer           = 0x28:0xf1872bbc
> frame pointer           = 0x28:0xf1872bc8
> code segment            = base 0x0, limit 0xfffff, type 0x1b
>                        = DPL 0, pres 1, def32 1, gran 1
> processor eflags        = resume, IOPL = 0
> current process         = 14677 (proftpd)
>
> db> show allpcpu
> Current CPU: 5
>
> cpuid        = 0
> curthread    = 0xc7cfec80: pid 18 "swi4: clock sio"
> curpcb       = 0xe6892d90
> fpcurthread  = none
> idlethread   = 0xc7cfeaf0: pid 17 "idle: cpu0"
> APIC ID      = 0
> currentldt   = 0x50
>
> cpuid        = 1
> curthread    = 0xce9b1c80: pid 63915 "sc_trans_freebsd"
> curpcb       = 0xf1263d90
> fpcurthread  = none
> idlethread   = 0xc7cfe000: pid 16 "idle: cpu1"
> APIC ID      = 1
> currentldt   = 0x50
>
> cpuid        = 2
> curthread    = 0xd1b944b0: pid 63619 "sc_serv"
> curpcb       = 0xf2435d90
> fpcurthread  = none
> idlethread   = 0xc7cfde10: pid 15 "idle: cpu2"
> APIC ID      = 2
> currentldt   = 0x58
>
> cpuid        = 3
> curthread    = 0xd2340af0: pid 5086 "sc_serv"
> curpcb       = 0xf2e08d90
> fpcurthread  = none
> idlethread   = 0xc7cfdc80: pid 14 "idle: cpu3"
> APIC ID      = 3
> currentldt   = 0x58
>
> cpuid        = 4
> curthread    = 0xca46b640: pid 14743 "httpd"
> curpcb       = 0xeefbbd90
> fpcurthread  = none
> idlethread   = 0xc7cfdaf0: pid 13 "idle: cpu4"
> APIC ID      = 4
> currentldt   = 0x50
>
> cpuid        = 5
> curthread    = 0xcf8e2640: pid 14677 "proftpd"
> curpcb       = 0xf1872d90
> fpcurthread  = none
> idlethread   = 0xc7cfd960: pid 12 "idle: cpu5"
> APIC ID      = 5
> currentldt   = 0x50
>
> cpuid        = 6
> curthread    = 0xc833a7d0: pid 10882 "httpd"
> curpcb       = 0xf2651d90
> fpcurthread  = none
> idlethread   = 0xc7cfd7d0: pid 11 "idle: cpu6"
> APIC ID      = 6
> currentldt   = 0x50
>
> cpuid        = 7
> curthread    = 0xc7d02000: pid 20 "swi1: net"
> curpcb       = 0xe6898d90
> fpcurthread  = none
> idlethread   = 0xc7cfd640: pid 10 "idle: cpu7"
> APIC ID      = 7
> currentldt   = 0x50
>
> db> bt 63619
> Tracing pid 63619 tid 103691 td 0xd24e8640
> sched_switch(3528361536,0,2) at sched_switch+323
> mi_switch(2,0) at mi_switch+442
> critical_exit(3231785568,4070575232,3230238960,0,3227844616,...) at
> critical_exit+157
> lapic_handle_timer(0) at lapic_handle_timer+201
> Xtimerint(3231785568,3528361536,0,0,0) at Xtimerint+48
> accept1(3528361536,4070575364,0,4070575408,3230324027,...) at accept1+254
> accept(3528361536,4070575364) at accept+16
> syscall(135659579,59,138870843,135738880,0,...) at syscall+703
> Xint0x80_syscall() at Xint0x80_syscall+31
> --- syscall (30, FreeBSD ELF32, accept), eip = 672261683, esp =
> 3215908652, ebp = 3215908696 ---
>
> db> bt 5086
> Tracing pid 5086 tid 103669 td 0xc8494640
> sched_switch(3360245312,0,1) at sched_switch+323
> mi_switch(1,0,3435481780,4041956464,3228189038,...) at mi_switch+442
> sleepq_switch(3435481780) at sleepq_switch+135
> sleepq_timedwait_sig(3435481780) at sleepq_timedwait_sig+30
> msleep(3435481780,3451159168,360,3230803656,3,...) at msleep+560
> kse_release(3360245312,4041956612) at kse_release+567
> syscall(135659579,59,138870843,135713536,0,...) at syscall+703
> Xint0x80_syscall() at Xint0x80_syscall+31
> --- syscall (383, FreeBSD ELF32, kse_release), eip = 671810103, esp =
> 138899336, ebp = 138899396 ---
>
> db> bt 10882
> Tracing pid 10882 tid 102711 td 0xc833a7d0
> sched_switch(3358828496,3352291680,6) at sched_switch+323
> mi_switch(6,3352291680,3352292024,3231754688,4066712232,...) at mi_switch+442
> maybe_preempt(3352291680) at maybe_preempt+196
> sched_add(3352291680,4,3358828496,3352291680,4066712268,...) at sched_add+600
> setrunqueue(3358828840,3499884544,3231754688,4066712304,3228131795,...)
> at setrunqueue+99
> _end() at 3358828496
>
> db> bt 20
> Tracing pid 20 tid 100013 td 0xc7d02000
> sched_switch(3352305664,3352291680,6) at sched_switch+323
> mi_switch(6,3352291680,3352292024,3231754688,3867773608,...) at mi_switch+442
> maybe_preempt(3352291680) at maybe_preempt+196
> sched_add(3352291680,4,3352305664,3352291680,3867773644,...) at sched_add+600
> setrunqueue(3867773668,3227962772,3352306008,3867773680,3228131754,...)
> at setrunqueue+99
> _end() at 3352305664
>
>
>
> -- 
> wbr,
> pluknet
> _______________________________________________
> freebsd-net@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.0904231038550.54334>