syzbot


INFO: task can't die in blkdev_common_ioctl

Status: closed as dup on 2022/04/02 11:26
Subsystems: block
[Documentation on labels]
Reported-by: syzbot+4f1a237abaf14719db49@syzkaller.appspotmail.com
First crash: 1112d, last: 61d
Duplicate of
Title Repro Cause bisect Fix bisect Count Last Reported
INFO: task hung in blkdev_fallocate block C error error 1649 2d06h 1083d
Discussions (1)
Title Replies (including bot) Last reply
[syzbot] INFO: task can't die in blkdev_common_ioctl 5 (6) 2022/04/05 13:15
Similar bugs (4)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-5.15 INFO: task hung in blkdev_common_ioctl (2) origin:upstream missing-backport C error 2 6d08h 230d 0/3 upstream: reported C repro on 2024/05/05 13:20
linux-5.15 INFO: task hung in blkdev_common_ioctl 1 593d 593d 0/3 auto-obsoleted due to no activity on 2023/08/23 09:04
linux-6.1 INFO: task hung in blkdev_common_ioctl (2) 3 262d 346d 0/3 auto-obsoleted due to no activity on 2024/07/12 01:42
linux-6.1 INFO: task hung in blkdev_common_ioctl 3 599d 650d 0/3 auto-obsoleted due to no activity on 2023/08/23 09:07

Sample crash report:
INFO: task syz-executor168:5114 blocked for more than 143 seconds.
      Not tainted 6.9.0-syzkaller-12255-g0b32d436c015 #0
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:syz-executor168 state:D stack:26320 pid:5114  tgid:5114  ppid:5086   flags:0x00004006
Call Trace:
 <TASK>
 context_switch kernel/sched/core.c:5408 [inline]
 __schedule+0x1796/0x49d0 kernel/sched/core.c:6745
 __schedule_loop kernel/sched/core.c:6822 [inline]
 schedule+0x14b/0x320 kernel/sched/core.c:6837
 schedule_preempt_disabled+0x13/0x30 kernel/sched/core.c:6894
 rwsem_down_write_slowpath+0xeeb/0x13b0 kernel/locking/rwsem.c:1178
 __down_write_common+0x1af/0x200 kernel/locking/rwsem.c:1306
 filemap_invalidate_lock include/linux/fs.h:836 [inline]
 blk_ioctl_zeroout block/ioctl.c:221 [inline]
 blkdev_common_ioctl+0x1637/0x23e0 block/ioctl.c:555
 blkdev_ioctl+0x4cd/0x6b0 block/ioctl.c:670
 vfs_ioctl fs/ioctl.c:51 [inline]
 __do_sys_ioctl fs/ioctl.c:907 [inline]
 __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:893
 do_syscall_x64 arch/x86/entry/common.c:52 [inline]
 do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f63060d8b29
RSP: 002b:00007ffd5775adf8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f63060d8b29
RDX: 0000000020000040 RSI: 000000000000127f RDI: 0000000000000003
RBP: 00000000000f4240 R08: 00000000000000a0 R09: 00000000000000a0
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000012504
R13: 00007ffd5775ae0c R14: 00007ffd5775ae20 R15: 00007ffd5775ae10
 </TASK>

Showing all locks held in the system:
1 lock held by khungtaskd/30:
 #0: ffffffff8e333e60 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:329 [inline]
 #0: ffffffff8e333e60 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:781 [inline]
 #0: ffffffff8e333e60 (rcu_read_lock){....}-{1:2}, at: debug_show_all_locks+0x55/0x2a0 kernel/locking/lockdep.c:6614
1 lock held by klogd/4523:
2 locks held by getty/4844:
 #0: ffff88802b24b0a0 (&tty->ldisc_sem){++++}-{0:0}, at: tty_ldisc_ref_wait+0x25/0x70 drivers/tty/tty_ldisc.c:243
 #1: ffffc90002f0e2f0 (&ldata->atomic_read_lock){+.+.}-{3:3}, at: n_tty_read+0x6b5/0x1e10 drivers/tty/n_tty.c:2201
1 lock held by syz-executor168/5095:
1 lock held by syz-executor168/5114:
 #0: ffff88801d5442c8 (mapping.invalidate_lock#2){++++}-{3:3}, at: filemap_invalidate_lock include/linux/fs.h:836 [inline]
 #0: ffff88801d5442c8 (mapping.invalidate_lock#2){++++}-{3:3}, at: blk_ioctl_zeroout block/ioctl.c:221 [inline]
 #0: ffff88801d5442c8 (mapping.invalidate_lock#2){++++}-{3:3}, at: blkdev_common_ioctl+0x1637/0x23e0 block/ioctl.c:555
1 lock held by syz-executor168/5115:
 #0: ffff88801d5442c8 (mapping.invalidate_lock#2){++++}-{3:3}, at: filemap_invalidate_lock include/linux/fs.h:836 [inline]
 #0: ffff88801d5442c8 (mapping.invalidate_lock#2){++++}-{3:3}, at: blk_ioctl_zeroout block/ioctl.c:221 [inline]
 #0: ffff88801d5442c8 (mapping.invalidate_lock#2){++++}-{3:3}, at: blkdev_common_ioctl+0x1637/0x23e0 block/ioctl.c:555
1 lock held by syz-executor168/5116:
 #0: ffff88801d5442c8 (mapping.invalidate_lock#2){++++}-{3:3}, at: filemap_invalidate_lock include/linux/fs.h:836 [inline]
 #0: ffff88801d5442c8 (mapping.invalidate_lock#2){++++}-{3:3}, at: blk_ioctl_zeroout block/ioctl.c:221 [inline]
 #0: ffff88801d5442c8 (mapping.invalidate_lock#2){++++}-{3:3}, at: blkdev_common_ioctl+0x1637/0x23e0 block/ioctl.c:555
1 lock held by syz-executor168/5123:
 #0: ffff88801d5442c8 (mapping.invalidate_lock#2){++++}-{3:3}, at: filemap_invalidate_lock include/linux/fs.h:836 [inline]
 #0: ffff88801d5442c8 (mapping.invalidate_lock#2){++++}-{3:3}, at: blk_ioctl_zeroout block/ioctl.c:221 [inline]
 #0: ffff88801d5442c8 (mapping.invalidate_lock#2){++++}-{3:3}, at: blkdev_common_ioctl+0x1637/0x23e0 block/ioctl.c:555

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

NMI backtrace for cpu 0
CPU: 0 PID: 30 Comm: khungtaskd Not tainted 6.9.0-syzkaller-12255-g0b32d436c015 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/02/2024
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0x241/0x360 lib/dump_stack.c:114
 nmi_cpu_backtrace+0x49c/0x4d0 lib/nmi_backtrace.c:113
 nmi_trigger_cpumask_backtrace+0x198/0x320 lib/nmi_backtrace.c:62
 trigger_all_cpu_backtrace include/linux/nmi.h:162 [inline]
 check_hung_uninterruptible_tasks kernel/hung_task.c:223 [inline]
 watchdog+0xfde/0x1020 kernel/hung_task.c:379
 kthread+0x2f0/0x390 kernel/kthread.c:389
 ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:147
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
 </TASK>
Sending NMI from CPU 0 to CPUs 1:
NMI backtrace for cpu 1
CPU: 1 PID: 24 Comm: ksoftirqd/1 Not tainted 6.9.0-syzkaller-12255-g0b32d436c015 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/02/2024
RIP: 0010:arch_atomic_read arch/x86/include/asm/atomic.h:23 [inline]
RIP: 0010:raw_atomic_read include/linux/atomic/atomic-arch-fallback.h:457 [inline]
RIP: 0010:rcu_dynticks_curr_cpu_in_eqs include/linux/context_tracking.h:122 [inline]
RIP: 0010:rcu_is_watching+0x5a/0xb0 kernel/rcu/tree.c:724
Code: f0 48 c1 e8 03 42 80 3c 38 00 74 08 4c 89 f7 e8 dc 46 7c 00 48 c7 c3 08 7d 03 00 49 03 1e 48 89 d8 48 c1 e8 03 42 0f b6 04 38 <84> c0 75 22 8b 03 65 ff 0d 51 90 87 7e 74 10 83 e0 04 c1 e8 02 5b
RSP: 0018:ffffc900001e7930 EFLAGS: 00000a02
RAX: 0000000000000000 RBX: ffff8880b9537d08 RCX: ffff888017ea0000
RDX: ffff888017ea0000 RSI: ffffffff8c1f10e0 RDI: ffffffff8c1f10a0
RBP: 0000000000000001 R08: ffffffff82043cf1 R09: 1ffffffff25edeb0
R10: dffffc0000000000 R11: fffffbfff25edeb1 R12: ffffea00018f9400
R13: 0000000000000000 R14: ffffffff8dda59e8 R15: dffffc0000000000
FS:  0000000000000000(0000) GS:ffff8880b9500000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f630614f0d0 CR3: 00000000684fc000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <NMI>
 </NMI>
 <TASK>
 rcu_read_lock include/linux/rcupdate.h:782 [inline]
 page_ext_get+0x5a/0x2a0 mm/page_ext.c:521
 __page_table_check_zero+0xb1/0x340 mm/page_table_check.c:142
 page_table_check_free include/linux/page_table_check.h:41 [inline]
 free_pages_prepare mm/page_alloc.c:1089 [inline]
 free_unref_page+0xd2d/0xea0 mm/page_alloc.c:2565
 rcu_do_batch kernel/rcu/tree.c:2535 [inline]
 rcu_core+0xafd/0x1830 kernel/rcu/tree.c:2809
 handle_softirqs+0x2c4/0x970 kernel/softirq.c:554
 run_ksoftirqd+0xca/0x130 kernel/softirq.c:928
 smpboot_thread_fn+0x544/0xa30 kernel/smpboot.c:164
 kthread+0x2f0/0x390 kernel/kthread.c:389
 ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:147
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
 </TASK>
INFO: NMI handler (nmi_cpu_backtrace_handler) took too long to run: 1.376 msecs

Crashes (382):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/05/25 12:29 upstream 0b32d436c015 a10a183e .config strace log report syz C [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-smack-root INFO: task hung in blkdev_common_ioctl
2024/03/01 17:53 upstream 87adedeba51a 352ab904 .config strace log report syz C [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root INFO: task hung in blkdev_common_ioctl
2024/01/28 01:32 upstream 3a5879d495b2 cc4a4020 .config strace log report syz C [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root INFO: task hung in blkdev_common_ioctl
2023/11/16 11:28 upstream c42d9eeef8e5 cb976f63 .config strace log report syz C [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2023/10/28 21:25 upstream 56567a20b22b 3c418d72 .config strace log report syz C [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2024/01/01 19:36 upstream 610a9b8f49fb fb427a07 .config console log report syz C [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-386 INFO: task hung in blkdev_common_ioctl
2023/11/30 14:28 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 2cc14f52aeb7 f819d6f7 .config console log report syz C [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 INFO: task hung in blkdev_common_ioctl
2023/11/20 06:48 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 8de1e7afcc1c cb976f63 .config console log report syz C [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 INFO: task hung in blkdev_common_ioctl
2021/12/04 23:26 linux-next f81e94e91878 a617004c .config console log report info ci-upstream-linux-next-kasan-gce-root INFO: task can't die in blkdev_common_ioctl
2024/10/20 20:36 upstream db87114dcf13 cd6fc0a3 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2024/10/18 01:01 upstream 6efbea77b390 666f77ed .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2024/10/17 19:50 upstream 6efbea77b390 666f77ed .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2024/10/16 23:32 upstream c964ced77262 666f77ed .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2024/10/16 07:32 upstream 2f87d0916ce0 bde2d81c .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2024/10/15 09:09 upstream eca631b8fe80 14943bb8 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2024/10/14 20:46 upstream eca631b8fe80 b01b6661 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2024/10/13 17:53 upstream ba01565ced22 084d8178 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2024/10/12 15:15 upstream 09f6b0c8904b 084d8178 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2024/10/12 13:01 upstream 9e4c6c1ad9a1 084d8178 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2024/10/12 08:59 upstream 9e4c6c1ad9a1 084d8178 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2024/10/12 05:33 upstream 9e4c6c1ad9a1 084d8178 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2024/10/12 01:18 upstream 9e4c6c1ad9a1 084d8178 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2024/10/11 03:30 upstream 1d227fcc7222 8fbfc0c8 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2024/10/09 17:31 upstream 75b607fab38d 0278d004 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2024/10/09 10:24 upstream 75b607fab38d 402f1df0 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2024/10/08 20:35 upstream 5b7c893ed5ed 402f1df0 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2024/10/08 08:01 upstream 87d6aab2389e 402f1df0 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root INFO: task hung in blkdev_common_ioctl
2024/10/08 06:40 upstream 87d6aab2389e 402f1df0 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2024/10/07 12:22 upstream 8cf0b93919e1 d7906eff .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2024/10/07 00:44 upstream 8cf0b93919e1 d7906eff .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root INFO: task hung in blkdev_common_ioctl
2024/10/06 11:23 upstream 8f602276d390 d7906eff .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root INFO: task hung in blkdev_common_ioctl
2024/10/06 00:35 upstream fc20a3e57247 d7906eff .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-selinux-root INFO: task hung in blkdev_common_ioctl
2024/10/05 22:02 upstream fc20a3e57247 d7906eff .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root INFO: task hung in blkdev_common_ioctl
2024/10/05 19:31 upstream fc20a3e57247 d7906eff .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2024/10/05 06:38 upstream 27cc6fdf7201 d7906eff .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2024/10/04 13:53 upstream 0c559323bbaa d7906eff .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2024/10/04 02:12 upstream 0c559323bbaa d7906eff .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-smack-root INFO: task hung in blkdev_common_ioctl
2024/10/03 08:38 upstream f23aa4c0761a a4c7fd36 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root INFO: task hung in blkdev_common_ioctl
2024/10/01 15:28 upstream e32cde8d2bd7 ea2b66a6 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2024/10/01 04:39 upstream e32cde8d2bd7 bbd4e0a4 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: task hung in blkdev_common_ioctl
2024/10/21 14:01 upstream 42f7652d3eb5 a93682b3 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-386 INFO: task hung in blkdev_common_ioctl
2024/10/20 21:52 upstream c55228220dd3 cd6fc0a3 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-386 INFO: task hung in blkdev_common_ioctl
2024/10/20 21:51 upstream c55228220dd3 cd6fc0a3 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-386 INFO: task hung in blkdev_common_ioctl
2024/10/20 08:04 upstream 715ca9dd687f cd6fc0a3 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-386 INFO: task hung in blkdev_common_ioctl
2024/10/19 18:38 upstream 9197b73fd7bb cd6fc0a3 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-386 INFO: task hung in blkdev_common_ioctl
2024/10/19 04:46 upstream 3d5ad2d4eca3 cd6fc0a3 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-386 INFO: task hung in blkdev_common_ioctl
2024/10/18 23:31 upstream 4d939780b705 cd6fc0a3 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-386 INFO: task hung in blkdev_common_ioctl
2024/10/18 08:40 upstream 4d939780b705 666f77ed .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-386 INFO: task hung in blkdev_common_ioctl
2024/10/16 18:33 upstream 2f87d0916ce0 666f77ed .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-386 INFO: task hung in blkdev_common_ioctl
2024/10/16 09:09 upstream 2f87d0916ce0 bde2d81c .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-386 INFO: task hung in blkdev_common_ioctl
2024/10/15 01:46 upstream eca631b8fe80 b01b6661 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-386 INFO: task hung in blkdev_common_ioctl
2024/10/10 05:23 upstream b983b271662b 0278d004 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-386 INFO: task hung in blkdev_common_ioctl
2024/10/10 03:42 upstream b983b271662b 0278d004 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-386 INFO: task hung in blkdev_common_ioctl
2024/10/07 09:43 upstream 2a130b7e1fcd d7906eff .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-386 INFO: task hung in blkdev_common_ioctl
2024/10/04 16:24 upstream 0c559323bbaa d7906eff .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-386 INFO: task hung in blkdev_common_ioctl
2024/10/03 13:30 upstream 7ec462100ef9 d7906eff .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-386 INFO: task hung in blkdev_common_ioctl
2024/02/18 05:11 linux-next 2c3b09aac00d 578f7538 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root INFO: task hung in blkdev_common_ioctl
2024/04/09 20:38 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 707081b61156 56086b24 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 INFO: task hung in blkdev_common_ioctl
2024/10/08 04:47 git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git fixes cfb10de18538 402f1df0 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu2-riscv64 INFO: task hung in blkdev_common_ioctl
* Struck through repros no longer work on HEAD.