Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 159729 - fbsplash hangs in chvt
Summary: fbsplash hangs in chvt
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal
Assignee: Michal Januszewski (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-01-02 08:44 UTC by Daniel Drake (RETIRED)
Modified: 2007-03-17 17:08 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Daniel Drake (RETIRED) gentoo-dev 2007-01-02 08:44:34 UTC
The following usually crashes after 2-3 minutes for me:

 # while true; do splash_manager -c demo -T Brontes --steps 3; done

Also happens with the 2006.1 theme.

After a while, the screen freezes at the end of the spash. I can ssh in and strace tells me that splash_manager is sitting on wait4(). The only child of splash_manager is chvt. When I attempt to attach strace the chvt process, I get nothing useful:

Process 23450 attached - interrupt to quit
dup(2)                                  = 4
fcntl(4, F_GETFL)                       = 0x8002 (flags O_RDWR|O_LARGEFILE)
brk(0)                                  = 0x502000
brk(0x523000)                           = 0x523000
fstat(4, {st_mode=S_IFCHR|0600, st_rdev=makedev(4, 1), ...}) = 0
ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b79aab24000
lseek(4, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
write(4, "VT_WAITACTIVE: Interrupted syste"..., 39) = 39
close(4)                                = 0
munmap(0x2b79aab24000, 4096)            = 0
exit_group(1)                           = ?
Process 23450 detached


Alt+SysRQ+t shows:

chvt          S ffff81006ad3dc88     0 25679  25646                     (NOTLB)
 ffff81006ad3dc88 ffff81006ad3dca8 000000038020d2df 0000000000000082
 ffff81007bf10140 ffff810072e809b0 0000000000000765 ffff81007bf10318
 0000000200000000 ffff81006ad3dc68 ffffffff80286d74 0000000300000000
Call Trace:
 [<ffffffff80286d74>] __wake_up_common+0x44/0x80
 [<ffffffff803a8485>] vt_waitactive+0xa5/0xf0
 [<ffffffff802884b0>] default_wake_function+0x0/0x10
 [<ffffffff803a9628>] vt_ioctl+0x1158/0x18e0
 [<ffffffff8020ec10>] link_path_walk+0x100/0x140
 [<ffffffff80207709>] find_get_page+0x29/0x60
 [<ffffffff8023b0bd>] tty_ioctl+0xd1d/0xde0
 [<ffffffff80208b5e>] __handle_mm_fault+0x59e/0x9e0
 [<ffffffff8024e1ca>] chrdev_open+0x18a/0x1e0
 [<ffffffff80222ba1>] __up_read+0x21/0xb0
 [<ffffffff8020ac17>] do_page_fault+0x447/0x820
 [<ffffffff802458c9>] do_ioctl+0x69/0xa0
 [<ffffffff80232322>] vfs_ioctl+0x2a2/0x2e0
 [<ffffffff802515f9>] sys_ioctl+0x49/0x80
 [<ffffffff802646e2>] system_call+0x7e/0x83
Comment 1 Daniel Drake (RETIRED) gentoo-dev 2007-01-02 08:49:21 UTC
vt_waitactive() sits in a loop until the foreground console is the requested one. So I guess the point of failure is some point earlier: chvt requests a VT change (which somehow gets ignored/lost), then its sits in this loop.
Comment 2 Daniel Drake (RETIRED) gentoo-dev 2007-01-02 08:53:58 UTC
This would appear to be a concurrency issue as the splash_manager demo loop runs for as long as I have tested when a UP kernel is built. This system has 4 CPU's.
Comment 3 Michal Januszewski (RETIRED) gentoo-dev 2007-03-17 17:08:03 UTC
Fixed in 1.3.1. Thanks for your help Daniel :)