Opened 7 years ago

Closed 7 years ago

#673 closed defect (fixed)

stats command hangs while a killed tetris waits for a keypress

Reported by: Jakub Jermář Owned by:
Priority: major Milestone:
Component: helenos/unspecified Version: mainline
Keywords: ia32 Cc:
Blocker for: Depends on:
See also:

Description

As mainline,2585, the following steps will temporarily hang the stats command:

  • in one vterm, start tetris
  • in another vterm, do killall tetris
  • in the second vterm, issue the stats command

stats will not be able to complete until a key is pressed in the first vterm.

Change History (3)

comment:1 by Jakub Jermář, 7 years ago

These are the interesting tasks:

kconsole> tasks
[id    ] [name        ] [ctn] [address ] [as      ] [ucycles ] [kcycles ]
...
6        init:vfs       0     0x81279050 0x81001154    585859k    335661k
...
59       bdsh           0     0x8333c000 0x81001f24      4131k      3031k
...
72       stats          0     0x81258050 0x81001088      1622k      1752k

The hung stats command is waiting for vfs:

kconsole> ipc 72
[phone id] [calls] [state
0                0 connected to 2 (init:ns)
1                0 connected to 6 (init:vfs)
2                0 connected to 6 (init:vfs)
3                0 connected to 6 (init:vfs)
4                1 connected to 6 (init:vfs)
[call id ] [method] [arg1] [arg2] [arg3] [arg4] [arg5] [flags] [sender
 --- incomming calls ---
 --- dispatched calls ---
 --- incoming answers ---

The IPC state of vfs looks like this:

kconsole> ipc 6
...
[call id ] [method] [arg1] [arg2] [arg3] [arg4] [arg5] [flags] [sender
 --- incomming calls ---
 --- dispatched calls ---
0x8160fea0 1030     0      0      0      0      0      0       ? (call forgotten)
0x8160f420 0        0      0      0      0      0      2       ? (call forgotten)
0x8160fc60 1041     1      11     0      0      0      0       59 (bdsh)
0x8160f4e0 9        90400  47     0      0      0      0       59 (bdsh)
0x8160fa80 1024     124    4294967295 0      0      0      0       72 (stats)
 --- incoming answers ---

comment:2 by Jakub Jermář, 7 years ago

The forgotten call is a VFS_IN_READ from the killed tetris task, bdsh is in VFS_IN_WRITE and stats is doing VFS_IN_CLONE.

comment:3 by Jakub Jermář, 7 years ago

Resolution: fixed
Status: newclosed

Fixed in mainline,2717

Note: See TracTickets for help on using tickets.