Kernel WARNING in videobuf2_common when Chromium cycles videos on dual screens leading to video playback failure (Pi 4, 6.12.20)
Describe the bug
I’m seeing a kernel warning in __vb2_queue_cancel when running Chromium in kiosk mode to cycle through videos on two separate screens. This appears to originate from the videobuf2_common module, with an indication that stop_streaming() is leaving buffers in an active state. After running for a few hours, one or more of the videos will fail to play, usually freezing on the first frame.
Steps to reproduce the behaviour
- Configure Raspberry Pi 4 to use dual HDMI outputs.
- Launch Chromium (with hardware acceleration enabled) in kiosk mode to display two separate webpages (one per screen).
- Each webpage cycles through several videos using
<video>tags with autoplay+loop. Videos are cycled by toggling thedisplaytag of each video to eitherblockornone(and subsequently after a small delay, pausing hidden videos and settingvideo.currentTime = 0). - After 30 mins - 1 hour, kernel warnings start to appear.
- After a few hours to a few days, a seemingly random video will fail to play each time it is displayed.
Device (s)
Raspberry Pi 4 Mod. B
System
OS and version: Raspberry Pi reference 2024-11-19 Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, 891df1e21ed2b6099a2e6a13e26c91dea44b34d4, stage4
Firmware version: Mar 19 2025 18:24:21 Copyright (c) 2012 Broadcom version ca6e8171a80ea46924ffaa629250bfb482f3a02c (clean) (release) (start)
Kernel version: Linux six 6.12.20+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.12.20-1+rpt1~bpo12+1 (2025-03-19) aarch64 GNU/Linux
Logs
[ 451.375494] WARNING: CPU: 0 PID: 1587 at drivers/media/common/videobuf2/videobuf2-core.c:2215 __vb2_queue_cancel+0x238/0x2d8 [videobuf2_common]
[ 451.375528] Modules linked in: xt_REDIRECT xt_tcpudp nf_nat_pptp nf_conntrack_pptp nft_chain_nat xt_MASQUERADE nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 nft_compat nf_tables nfnetlink rfcomm snd_seq_dummy snd_hrtimer snd_seq snd_seq_device cmac algif_hash aes_arm64 aes_generic algif_skcipher af_alg bnep binfmt_misc brcmfmac_wcc hci_uart btbcm bluetooth pl2303 bcm2835_codec(C) rpi_hevc_dec bcm2835_isp(C) usbserial bcm2835_v4l2(C) bcm2835_mmal_vchiq(C) ecdh_generic vc_sm_cma(C) v4l2_mem2mem brcmfmac ecc videobuf2_vmalloc videobuf2_dma_contig videobuf2_memops brcmutil videobuf2_v4l2 videodev libaes cfg80211 rfkill videobuf2_common snd_bcm2835(C) raspberrypi_hwmon mc i2c_brcmstb raspberrypi_gpiomem nvmem_rmem i2c_dev ledtrig_pattern fuse dm_mod ip_tables x_tables ipv6 vc4 snd_soc_hdmi_codec v3d snd_soc_core snd_compress drm_shmem_helper snd_pcm_dmaengine snd_pcm snd_timer snd gpu_sched drm_display_helper drm_dma_helper cec drm_kms_helper drm drm_panel_orientation_quirks backlight uio_pdrv_genirq uio
[ 451.375730] CPU: 0 UID: 1000 PID: 1587 Comm: ThreadPoolSingl Tainted: G C 6.12.20+rpt-rpi-v8 #1 Debian 1:6.12.20-1+rpt1~bpo12+1
[ 451.375739] Tainted: [C]=CRAP
[ 451.375743] Hardware name: Raspberry Pi 4 Model B Rev 1.1 (DT)
[ 451.375748] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 451.375754] pc : __vb2_queue_cancel+0x238/0x2d8 [videobuf2_common]
[ 451.375770] lr : __vb2_queue_cancel+0x34/0x2d8 [videobuf2_common]
[ 451.375783] sp : ffffffc083853b00
[ 451.375786] x29: ffffffc083853b00 x28: ffffffe52d81ed18 x27: ffffffe52d93d0f8
[ 451.375797] x26: 0000000000000000 x25: ffffff80426c3548 x24: ffffff806c5f2780
[ 451.375807] x23: 0000000000000000 x22: ffffff80808c3da8 x21: ffffff80808c3da8
[ 451.375816] x20: 000000000000000a x19: ffffff80808c3da8 x18: 0000000000000003
[ 451.375826] x17: 0000000000000000 x16: ffffffe53815a9f8 x15: ffffffc0838535b0
[ 451.375835] x14: 0000000000000004 x13: ffffff8042280028 x12: 0000000000000000
[ 451.375844] x11: ffffff80872b1ee8 x10: ffffff80872b1da8 x9 : ffffffe53815abc0
[ 451.375854] x8 : ffffffc083853a10 x7 : 0000000000000000 x6 : 0000000000000228
[ 451.375863] x5 : 000000008015000b x4 : fffffffec1b16ea0 x3 : 000000008015000b
[ 451.375873] x2 : 0000000000000000 x1 : 0000000000000000 x0 : 0000000000000004
[ 451.375882] Call trace:
[ 451.375886] __vb2_queue_cancel+0x238/0x2d8 [videobuf2_common]
[ 451.375901] vb2_core_streamoff+0x2c/0xd0 [videobuf2_common]
[ 451.375914] vb2_streamoff+0x20/0x78 [videobuf2_v4l2]
[ 451.375926] v4l2_m2m_streamoff+0x50/0x160 [v4l2_mem2mem]
[ 451.375942] v4l2_m2m_ioctl_streamoff+0x20/0x38 [v4l2_mem2mem]
[ 451.375954] v4l_streamoff+0x2c/0x40 [videodev]
[ 451.376005] __video_do_ioctl+0x170/0x3e0 [videodev]
[ 451.376041] video_usercopy+0x1bc/0x780 [videodev]
[ 451.376076] video_ioctl2+0x20/0x38 [videodev]
[ 451.376111] v4l2_ioctl+0x48/0x70 [videodev]
[ 451.376146] __arm64_sys_ioctl+0xb4/0x100
[ 451.376157] invoke_syscall+0x50/0x120
[ 451.376166] el0_svc_common.constprop.0+0x48/0xf0
[ 451.376174] do_el0_svc+0x24/0x38
[ 451.376181] el0_svc+0x30/0xd0
[ 451.376189] el0t_64_sync_handler+0x100/0x130
[ 451.376197] el0t_64_sync+0x190/0x198
[ 7474.680354] WARNING: CPU: 3 PID: 29825 at drivers/media/common/videobuf2/videobuf2-core.c:2215 __vb2_queue_cancel+0x238/0x2d8 [videobuf2_common]
[ 7474.680393] Modules linked in: xt_REDIRECT xt_tcpudp nf_nat_pptp nf_conntrack_pptp nft_chain_nat xt_MASQUERADE nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 nft_compat nf_tables nfnetlink rfcomm snd_seq_dummy snd_hrtimer snd_seq snd_seq_device cmac algif_hash aes_arm64 aes_generic algif_skcipher af_alg bnep binfmt_misc brcmfmac_wcc hci_uart btbcm bluetooth pl2303 bcm2835_codec(C) rpi_hevc_dec bcm2835_isp(C) usbserial bcm2835_v4l2(C) bcm2835_mmal_vchiq(C) ecdh_generic vc_sm_cma(C) v4l2_mem2mem brcmfmac ecc videobuf2_vmalloc videobuf2_dma_contig videobuf2_memops brcmutil videobuf2_v4l2 videodev libaes cfg80211 rfkill videobuf2_common snd_bcm2835(C) raspberrypi_hwmon mc i2c_brcmstb raspberrypi_gpiomem nvmem_rmem i2c_dev ledtrig_pattern fuse dm_mod ip_tables x_tables ipv6 vc4 snd_soc_hdmi_codec v3d snd_soc_core snd_compress drm_shmem_helper snd_pcm_dmaengine snd_pcm snd_timer snd gpu_sched drm_display_helper drm_dma_helper cec drm_kms_helper drm drm_panel_orientation_quirks backlight uio_pdrv_genirq uio
[ 7474.680684] CPU: 3 UID: 1000 PID: 29825 Comm: ThreadPoolSingl Tainted: G WC 6.12.20+rpt-rpi-v8 #1 Debian 1:6.12.20-1+rpt1~bpo12+1
[ 7474.680698] Tainted: [W]=WARN, [C]=CRAP
[ 7474.680703] Hardware name: Raspberry Pi 4 Model B Rev 1.1 (DT)
[ 7474.680708] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 7474.680717] pc : __vb2_queue_cancel+0x238/0x2d8 [videobuf2_common]
[ 7474.680738] lr : __vb2_queue_cancel+0x34/0x2d8 [videobuf2_common]
[ 7474.680757] sp : ffffffc08a2bbb00
[ 7474.680761] x29: ffffffc08a2bbb00 x28: ffffffe52d81ed18 x27: ffffffe52d93d0f8
[ 7474.680777] x26: 0000000000000000 xis:issue state:open [videodev]
[ 7474.681068] __video_do_ioctl+0x170/0x3e0 [videodev]
[ 7474.681121] video_usercopy+0x1bc/0x780 [videodev]
[ 7474.681173] video_ioctl2+0x20/0x38 [videodev]
[ 7474.681225] v4l2_ioctl+0x48/0x70 [videodev]
[ 7474.681277] __arm64_sys_ioctl+0xb4/0x100
[ 7474.681292] invoke_syscall+0x50/0x120
[ 7474.681306] el0_svc_common.constprop.0+0x48/0xf0
[ 7474.681317] do_el0_svc+0x24/0x38
[ 7474.681327] el0_svc+0x30/0xd0
[ 7474.681340] el0t_64_sync_handler+0x100/0x130
[ 7474.681351] el0t_64_sync+0x190/0x198
[ 7474.681359] ---[ end trace 0000000000000000 ]---
[ 7474.681367] videobuf2_common: driver bug: stop_streaming operation is leaving buffer 1 in active state
[ 7474.681373] videobuf2_common: driver bug: stop_streaming operation is leaving buffer 3 in active state
[ 7474.681379] videobuf2_common: driver bug: stop_streaming operation is leaving buffer 4 in active state
[ 7474.681383] videobuf2_common: driver bug: stop_streaming operation is leaving buffer 5 in active state
[ 7474.681388] videobuf2_common: driver bug: stop_streaming operation is leaving buffer 6 in active state
[ 7474.681393] videobuf2_common: driver bug: stop_streaming operation is leaving buffer 7 in active state
Additional context
No response