syzbot


INFO: task hung in lmLogClose

Status: upstream: reported on 2025/07/25 07:32
Reported-by: syzbot+0347eab37b822a8ac6e5@syzkaller.appspotmail.com
First crash: 23d, last: 1h54m
Similar bugs (5)
Kernel Title Rank 🛈 Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream INFO: task hung in lmLogClose jfs 1 1 853d 853d 0/29 auto-obsoleted due to no activity on 2023/07/16 16:14
upstream INFO: task hung in lmLogClose (3) jfs 1 C error 587 3h34m 516d 0/29 upstream: reported C repro on 2024/03/19 10:13
linux-6.1 INFO: task hung in lmLogClose origin:upstream 1 C 36 2d13h 462d 0/3 upstream: reported C repro on 2024/05/12 07:21
upstream INFO: task hung in lmLogClose (2) jfs 1 C inconclusive done 5 585d 677d 25/29 fixed on 2024/02/24 00:02
linux-5.15 INFO: task hung in lmLogClose origin:upstream 1 C 51 8d13h 499d 0/3 upstream: reported C repro on 2024/04/05 11:21

Sample crash report:
INFO: task syz-executor:5785 blocked for more than 143 seconds.
      Not tainted 6.6.102-syzkaller #0
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:syz-executor    state:D stack:21672 pid:5785  ppid:1      flags:0x00004006
Call Trace:
 <TASK>
 context_switch kernel/sched/core.c:5380 [inline]
 __schedule+0x14d2/0x44d0 kernel/sched/core.c:6699
 schedule+0xbd/0x170 kernel/sched/core.c:6773
 schedule_preempt_disabled+0x13/0x20 kernel/sched/core.c:6832
 __mutex_lock_common kernel/locking/mutex.c:679 [inline]
 __mutex_lock+0x6b7/0xcc0 kernel/locking/mutex.c:747
 lmLogClose+0xb4/0x520 fs/jfs/jfs_logmgr.c:1444
 jfs_umount+0x2ef/0x3c0 fs/jfs/jfs_umount.c:114
 jfs_put_super+0x8c/0x190 fs/jfs/super.c:194
 generic_shutdown_super+0x134/0x2b0 fs/super.c:693
 kill_block_super+0x44/0x90 fs/super.c:1660
 deactivate_locked_super+0x97/0x100 fs/super.c:481
 cleanup_mnt+0x429/0x4c0 fs/namespace.c:1250
 task_work_run+0x1ce/0x250 kernel/task_work.c:239
 resume_user_mode_work include/linux/resume_user_mode.h:49 [inline]
 exit_to_user_mode_loop+0xe6/0x110 kernel/entry/common.c:177
 exit_to_user_mode_prepare+0xb1/0x140 kernel/entry/common.c:210
 __syscall_exit_to_user_mode_work kernel/entry/common.c:291 [inline]
 syscall_exit_to_user_mode+0x1a/0x50 kernel/entry/common.c:302
 do_syscall_64+0x61/0xb0 arch/x86/entry/common.c:87
 entry_SYSCALL_64_after_hwframe+0x68/0xd2
RIP: 0033:0x7f7cbaf8ff17
RSP: 002b:00007fff32126238 EFLAGS: 00000246 ORIG_RAX: 00000000000000a6
RAX: 0000000000000000 RBX: 00007f7cbb011c05 RCX: 00007f7cbaf8ff17
RDX: 0000000000000000 RSI: 0000000000000009 RDI: 00007fff321262f0
RBP: 00007fff321262f0 R08: 0000000000000000 R09: 0000000000000000
R10: 00000000ffffffff R11: 0000000000000246 R12: 00007fff32127380
R13: 00007f7cbb011c05 R14: 0000000000090a79 R15: 00007fff321273c0
 </TASK>
INFO: task syz-executor:13376 blocked for more than 144 seconds.
      Not tainted 6.6.102-syzkaller #0
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:syz-executor    state:D stack:21736 pid:13376 ppid:1      flags:0x00004004
Call Trace:
 <TASK>
 context_switch kernel/sched/core.c:5380 [inline]
 __schedule+0x14d2/0x44d0 kernel/sched/core.c:6699
 schedule+0xbd/0x170 kernel/sched/core.c:6773
 schedule_preempt_disabled+0x13/0x20 kernel/sched/core.c:6832
 __mutex_lock_common kernel/locking/mutex.c:679 [inline]
 __mutex_lock+0x6b7/0xcc0 kernel/locking/mutex.c:747
 lmLogClose+0xb4/0x520 fs/jfs/jfs_logmgr.c:1444
 jfs_umount+0x2ef/0x3c0 fs/jfs/jfs_umount.c:114
 jfs_put_super+0x8c/0x190 fs/jfs/super.c:194
 generic_shutdown_super+0x134/0x2b0 fs/super.c:693
 kill_block_super+0x44/0x90 fs/super.c:1660
 deactivate_locked_super+0x97/0x100 fs/super.c:481
 cleanup_mnt+0x429/0x4c0 fs/namespace.c:1250
 task_work_run+0x1ce/0x250 kernel/task_work.c:239
 resume_user_mode_work include/linux/resume_user_mode.h:49 [inline]
 exit_to_user_mode_loop+0xe6/0x110 kernel/entry/common.c:177
 exit_to_user_mode_prepare+0xb1/0x140 kernel/entry/common.c:210
 __syscall_exit_to_user_mode_work kernel/entry/common.c:291 [inline]
 syscall_exit_to_user_mode+0x1a/0x50 kernel/entry/common.c:302
 do_syscall_64+0x61/0xb0 arch/x86/entry/common.c:87
 entry_SYSCALL_64_after_hwframe+0x68/0xd2
RIP: 0033:0x7ff8c858ff17
RSP: 002b:00007ffeabed88b8 EFLAGS: 00000246 ORIG_RAX: 00000000000000a6
RAX: 0000000000000000 RBX: 00007ff8c8611c05 RCX: 00007ff8c858ff17
RDX: 0000000000000000 RSI: 0000000000000009 RDI: 00007ffeabed8970
RBP: 00007ffeabed8970 R08: 0000000000000000 R09: 0000000000000000
R10: 00000000ffffffff R11: 0000000000000246 R12: 00007ffeabed9a00
R13: 00007ff8c8611c05 R14: 000000000009cadf R15: 00007ffeabed9a40
 </TASK>

Showing all locks held in the system:
1 lock held by khungtaskd/29:
 #0: ffffffff8cd2fbe0 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:334 [inline]
 #0: ffffffff8cd2fbe0 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:786 [inline]
 #0: ffffffff8cd2fbe0 (rcu_read_lock){....}-{1:2}, at: debug_show_all_locks+0x55/0x290 kernel/locking/lockdep.c:6633
2 locks held by kworker/u4:6/1085:
 #0: ffff88814c816938 ((wq_completion)bat_events){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:2609 [inline]
 #0: ffff88814c816938 ((wq_completion)bat_events){+.+.}-{0:0}, at: process_scheduled_works+0x957/0x15b0 kernel/workqueue.c:2711
 #1: ffffc900043dfd00 ((work_completion)(&(&bat_priv->nc.work)->work)){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:2609 [inline]
 #1: ffffc900043dfd00 ((work_completion)(&(&bat_priv->nc.work)->work)){+.+.}-{0:0}, at: process_scheduled_works+0x957/0x15b0 kernel/workqueue.c:2711
3 locks held by kworker/u4:7/1124:
 #0: ffff88802c973538 ((wq_completion)ipv6_addrconf){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:2609 [inline]
 #0: ffff88802c973538 ((wq_completion)ipv6_addrconf){+.+.}-{0:0}, at: process_scheduled_works+0x957/0x15b0 kernel/workqueue.c:2711
 #1: ffffc9000454fd00 ((work_completion)(&(&ifa->dad_work)->work)){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:2609 [inline]
 #1: ffffc9000454fd00 ((work_completion)(&(&ifa->dad_work)->work)){+.+.}-{0:0}, at: process_scheduled_works+0x957/0x15b0 kernel/workqueue.c:2711
 #2: ffffffff8dfbba48 (rtnl_mutex){+.+.}-{3:3}, at: addrconf_dad_work+0xd0/0x14e0 net/ipv6/addrconf.c:4159
2 locks held by getty/5544:
 #0: ffff88802d47b0a0 (&tty->ldisc_sem){++++}-{0:0}, at: tty_ldisc_ref_wait+0x25/0x70 drivers/tty/tty_ldisc.c:243
 #1: ffffc9000326e2f0 (&ldata->atomic_read_lock){+.+.}-{3:3}, at: n_tty_read+0x425/0x1380 drivers/tty/n_tty.c:2217
2 locks held by syz-executor/5785:
 #0: ffff88805fdb40e0 (&type->s_umount_key#61){++++}-{3:3}, at: __super_lock fs/super.c:56 [inline]
 #0: ffff88805fdb40e0 (&type->s_umount_key#61){++++}-{3:3}, at: __super_lock_excl fs/super.c:71 [inline]
 #0: ffff88805fdb40e0 (&type->s_umount_key#61){++++}-{3:3}, at: deactivate_super+0xa4/0xe0 fs/super.c:513
 #1: ffffffff8d148828 (jfs_log_mutex){+.+.}-{3:3}, at: lmLogClose+0xb4/0x520 fs/jfs/jfs_logmgr.c:1444
3 locks held by kworker/1:4/5839:
 #0: ffff888017870938 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:2609 [inline]
 #0: ffff888017870938 ((wq_completion)events){+.+.}-{0:0}, at: process_scheduled_works+0x957/0x15b0 kernel/workqueue.c:2711
 #1: ffffc90004ddfd00 ((work_completion)(&data->fib_event_work)){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:2609 [inline]
 #1: ffffc90004ddfd00 ((work_completion)(&data->fib_event_work)){+.+.}-{0:0}, at: process_scheduled_works+0x957/0x15b0 kernel/workqueue.c:2711
 #2: ffff888030e26240 (&data->fib_lock){+.+.}-{3:3}, at: nsim_fib_event_work+0x26c/0x3170 drivers/net/netdevsim/fib.c:1491
2 locks held by kworker/0:4/5877:
 #0: ffff888017872538 ((wq_completion)rcu_gp){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:2609 [inline]
 #0: ffff888017872538 ((wq_completion)rcu_gp){+.+.}-{0:0}, at: process_scheduled_works+0x957/0x15b0 kernel/workqueue.c:2711
 #1: ffffc90004fa7d00 ((work_completion)(&rew->rew_work)){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:2609 [inline]
 #1: ffffc90004fa7d00 ((work_completion)(&rew->rew_work)){+.+.}-{0:0}, at: process_scheduled_works+0x957/0x15b0 kernel/workqueue.c:2711
2 locks held by syz-executor/12881:
 #0: ffff88805fa4c0e0 (&type->s_umount_key#61){++++}-{3:3}, at: __super_lock fs/super.c:56 [inline]
 #0: ffff88805fa4c0e0 (&type->s_umount_key#61){++++}-{3:3}, at: __super_lock_excl fs/super.c:71 [inline]
 #0: ffff88805fa4c0e0 (&type->s_umount_key#61){++++}-{3:3}, at: deactivate_super+0xa4/0xe0 fs/super.c:513
 #1: ffffffff8d148828 (jfs_log_mutex){+.+.}-{3:3}, at: lmLogClose+0xb4/0x520 fs/jfs/jfs_logmgr.c:1444
2 locks held by syz-executor/13376:
 #0: ffff8880316080e0 (&type->s_umount_key#61){++++}-{3:3}, at: __super_lock fs/super.c:56 [inline]
 #0: ffff8880316080e0 (&type->s_umount_key#61){++++}-{3:3}, at: __super_lock_excl fs/super.c:71 [inline]
 #0: ffff8880316080e0 (&type->s_umount_key#61){++++}-{3:3}, at: deactivate_super+0xa4/0xe0 fs/super.c:513
 #1: ffffffff8d148828 (jfs_log_mutex){+.+.}-{3:3}, at: lmLogClose+0xb4/0x520 fs/jfs/jfs_logmgr.c:1444
2 locks held by syz-executor/13679:
 #0: ffff88802e5020e0 (&type->s_umount_key#61){++++}-{3:3}, at: __super_lock fs/super.c:56 [inline]
 #0: ffff88802e5020e0 (&type->s_umount_key#61){++++}-{3:3}, at: __super_lock_excl fs/super.c:71 [inline]
 #0: ffff88802e5020e0 (&type->s_umount_key#61){++++}-{3:3}, at: deactivate_super+0xa4/0xe0 fs/super.c:513
 #1: ffffffff8d148828 (jfs_log_mutex){+.+.}-{3:3}, at: lmLogClose+0xb4/0x520 fs/jfs/jfs_logmgr.c:1444
2 locks held by syz-executor/13939:
 #0: ffff8880241ac0e0 (&type->s_umount_key#61){++++}-{3:3}, at: __super_lock fs/super.c:56 [inline]
 #0: ffff8880241ac0e0 (&type->s_umount_key#61){++++}-{3:3}, at: __super_lock_excl fs/super.c:71 [inline]
 #0: ffff8880241ac0e0 (&type->s_umount_key#61){++++}-{3:3}, at: deactivate_super+0xa4/0xe0 fs/super.c:513
 #1: ffffffff8d148828 (jfs_log_mutex){+.+.}-{3:3}, at: lmLogClose+0xb4/0x520 fs/jfs/jfs_logmgr.c:1444
1 lock held by syz-executor/14122:
 #0: 
ffff888074db00e0
 (
&type->s_umount_key#61){++++}-{3:3}, at: __super_lock fs/super.c:56 [inline]
&type->s_umount_key#61){++++}-{3:3}, at: __super_lock_excl fs/super.c:71 [inline]
&type->s_umount_key#61){++++}-{3:3}, at: deactivate_super+0xa4/0xe0 fs/super.c:513
3 locks held by kworker/u4:2/14260:
2 locks held by dhcpcd/14624:
 #0: ffff88805673a020 (&sb->s_type->i_mutex_key#10){+.+.}-{3:3}, at: inode_lock include/linux/fs.h:804 [inline]
 #0: ffff88805673a020 (&sb->s_type->i_mutex_key#10){+.+.}-{3:3}, at: __sock_release net/socket.c:658 [inline]
 #0: ffff88805673a020 (&sb->s_type->i_mutex_key#10){+.+.}-{3:3}, at: sock_close+0x9b/0x230 net/socket.c:1421
 #1: ffffffff8cd35bb8 (rcu_state.exp_mutex){+.+.}-{3:3}, at: exp_funnel_lock kernel/rcu/tree_exp.h:292 [inline]
 #1: ffffffff8cd35bb8 (rcu_state.exp_mutex){+.+.}-{3:3}, at: synchronize_rcu_expedited+0x448/0x830 kernel/rcu/tree_exp.h:1004
1 lock held by syz.3.1317/14782:
 #0: ffff88805fdb40e0 (&type->s_umount_key#61){++++}-{3:3}, at: __super_lock fs/super.c:58 [inline]
 #0: ffff88805fdb40e0 (&type->s_umount_key#61){++++}-{3:3}, at: super_lock+0x167/0x360 fs/super.c:117
1 lock held by syz.3.1317/14786:
 #0: ffff88805fdb40e0 (&type->s_umount_key#61){++++}-{3:3}, at: __super_lock fs/super.c:56 [inline]
 #0: ffff88805fdb40e0 (&type->s_umount_key#61){++++}-{3:3}, at: super_lock+0x11a/0x360 fs/super.c:117
2 locks held by kworker/u4:3/14930:
1 lock held by syz-executor/14941:
 #0: ffff88802ff200e0 (&type->s_umount_key#61){++++}-{3:3}, at: __super_lock fs/super.c:56 [inline]
 #0: ffff88802ff200e0 (&type->s_umount_key#61){++++}-{3:3}, at: __super_lock_excl fs/super.c:71 [inline]
 #0: ffff88802ff200e0 (&type->s_umount_key#61){++++}-{3:3}, at: deactivate_super+0xa4/0xe0 fs/super.c:513
2 locks held by syz-executor/15188:
 #0: ffff8880776dc0e0 (&type->s_umount_key#61){++++}-{3:3}, at: __super_lock fs/super.c:56 [inline]
 #0: ffff8880776dc0e0 (&type->s_umount_key#61){++++}-{3:3}, at: __super_lock_excl fs/super.c:71 [inline]
 #0: ffff8880776dc0e0 (&type->s_umount_key#61){++++}-{3:3}, at: deactivate_super+0xa4/0xe0 fs/super.c:513
 #1: ffffffff8d148828 (jfs_log_mutex){+.+.}-{3:3}, at: lmLogClose+0xb4/0x520 fs/jfs/jfs_logmgr.c:1444
1 lock held by syz-executor/15680:
 #0: ffffffff8dfbba48 (rtnl_mutex){+.+.}-{3:3}, at: rtnl_lock net/core/rtnetlink.c:78 [inline]
 #0: ffffffff8dfbba48 (rtnl_mutex){+.+.}-{3:3}, at: rtnetlink_rcv_msg+0x76f/0xf10 net/core/rtnetlink.c:6472
3 locks held by syz-executor/15697:
 #0: ffffffff8dfbba48 (rtnl_mutex){+.+.}-{3:3}, at: rtnl_lock net/core/rtnetlink.c:78 [inline]
 #0: ffffffff8dfbba48 (rtnl_mutex){+.+.}-{3:3}, at: rtnetlink_rcv_msg+0x76f/0xf10 net/core/rtnetlink.c:6472
 #1: ffff88804b0393e8 (&wg->device_update_lock){+.+.}-{3:3}, at: wg_open+0x227/0x420 drivers/net/wireguard/device.c:50
 #2: ffffffff8cd35bb8 (rcu_state.exp_mutex){+.+.}-{3:3}, at: exp_funnel_lock kernel/rcu/tree_exp.h:324 [inline]
 #2: ffffffff8cd35bb8 (rcu_state.exp_mutex){+.+.}-{3:3}, at: synchronize_rcu_expedited+0x360/0x830 kernel/rcu/tree_exp.h:1004
2 locks held by rm/15822:

=============================================

NMI backtrace for cpu 1
CPU: 1 PID: 29 Comm: khungtaskd Not tainted 6.6.102-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2025
Call Trace:
 <TASK>
 dump_stack_lvl+0x16c/0x230 lib/dump_stack.c:106
 nmi_cpu_backtrace+0x39b/0x3d0 lib/nmi_backtrace.c:113
 nmi_trigger_cpumask_backtrace+0x17a/0x2f0 lib/nmi_backtrace.c:62
 trigger_all_cpu_backtrace include/linux/nmi.h:160 [inline]
 check_hung_uninterruptible_tasks kernel/hung_task.c:222 [inline]
 watchdog+0xf41/0xf80 kernel/hung_task.c:379
 kthread+0x2fa/0x390 kernel/kthread.c:388
 ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:152
 ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:293
 </TASK>
Sending NMI from CPU 1 to CPUs 0:
NMI backtrace for cpu 0
CPU: 0 PID: 15823 Comm: dhcpcd-run-hook Not tainted 6.6.102-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2025
RIP: 0010:arch_irqs_disabled_flags arch/x86/include/asm/irqflags.h:126 [inline]
RIP: 0010:arch_irqs_disabled arch/x86/include/asm/irqflags.h:133 [inline]
RIP: 0010:lock_is_held_type+0x122/0x190 kernel/locking/lockdep.c:5827
Code: 48 c7 c7 40 cb aa 8a e8 bc 12 00 00 b8 ff ff ff ff 65 0f c1 05 27 3e 95 75 83 f8 01 75 40 48 c7 04 24 00 00 00 00 9c 8f 04 24 <f7> 04 24 00 02 00 00 75 46 41 f7 c5 00 02 00 00 74 01 fb 65 48 8b
RSP: 0018:ffffc900035977f8 EFLAGS: 00000046
RAX: 0000000000000001 RBX: ffff88807df31e00 RCX: ee481892cb229000
RDX: 0000000000000000 RSI: ffffffff8aaacb40 RDI: ffffffff8afc66c0
RBP: 0000000000000000 R08: ffffffff8e4a882f R09: 1ffffffff1c95105
R10: dffffc0000000000 R11: fffffbfff1c95106 R12: 0000000000000001
R13: 0000000000000246 R14: ffffffff8cd2fca0 R15: ffff88807df32908
FS:  0000000000000000(0000) GS:ffff8880b8e00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fb7dad8cb4c CR3: 000000004ae87000 CR4: 00000000003506f0
Call Trace:
 <TASK>
 lock_is_held include/linux/lockdep.h:288 [inline]
 __might_resched+0xf6/0x610 kernel/sched/core.c:10170
 might_alloc include/linux/sched/mm.h:306 [inline]
 slab_pre_alloc_hook+0x4a/0x310 mm/slab.h:714
 slab_alloc_node mm/slub.c:3467 [inline]
 slab_alloc mm/slub.c:3493 [inline]
 __kmem_cache_alloc_lru mm/slub.c:3500 [inline]
 kmem_cache_alloc+0x5a/0x2e0 mm/slub.c:3509
 vm_area_alloc+0x24/0x1d0 kernel/fork.c:486
 __install_special_mapping+0x2f/0x320 mm/mmap.c:3598
 map_vdso+0x14d/0x3a0 arch/x86/entry/vdso/vma.c:245
 load_elf_binary+0x1c30/0x2700 fs/binfmt_elf.c:1308
 search_binary_handler fs/exec.c:1775 [inline]
 exec_binprm fs/exec.c:1817 [inline]
 bprm_execve+0xaeb/0x16f0 fs/exec.c:1892
 do_execveat_common+0x51b/0x6c0 fs/exec.c:1998
 do_execve fs/exec.c:2072 [inline]
 __do_sys_execve fs/exec.c:2148 [inline]
 __se_sys_execve fs/exec.c:2143 [inline]
 __x64_sys_execve+0x92/0xa0 fs/exec.c:2143
 do_syscall_x64 arch/x86/entry/common.c:51 [inline]
 do_syscall_64+0x55/0xb0 arch/x86/entry/common.c:81
 entry_SYSCALL_64_after_hwframe+0x68/0xd2
RIP: 0033:0x7f832a187107
Code: Unable to access opcode bytes at 0x7f832a1870dd.
RSP: 002b:00007f8329ff0e68 EFLAGS: 00000202 ORIG_RAX: 000000000000003b
RAX: ffffffffffffffda RBX: 00007ffdd45ebc40 RCX: 00007f832a187107
RDX: 00005612294a6ea0 RSI: 00007ffdd45ebe30 RDI: 00005612275d46bd
RBP: 00007f8329ff0ff0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000008 R11: 0000000000000202 R12: 0000000000000001
R13: 00007ffdd45eb920 R14: 00007f8329ff0f20 R15: 0000000000000040
 </TASK>

Crashes (2):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/08/18 02:25 linux-6.6.y bb9c90ab9c5a 1804e95e .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan INFO: task hung in lmLogClose
2025/07/25 07:31 linux-6.6.y dbcb8d8e4163 fb8f743d .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan INFO: task hung in lmLogClose
* Struck through repros no longer work on HEAD.