Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VDO error: assertion "metadata bio has no next bio" failed. #79

Open
thememika opened this issue Feb 23, 2024 · 2 comments
Open

VDO error: assertion "metadata bio has no next bio" failed. #79

thememika opened this issue Feb 23, 2024 · 2 comments
Assignees

Comments

@thememika
Copy link

thememika commented Feb 23, 2024

Environment:

  • Ubuntu 22.04.3 LTS (GNU/Linux 6.1.68 x86_64)
  • KVDO version: 35, release version: 0

When using a VDO device which was manually set up with vdoformat and dmsetup, these messages with err priority sometimes can be found in the kernel ring buffer. The error and the call trace which was printed with it:

[1612941.063945] kvdo20:reqQ: assertion "metadata bio has no next bio" (vio->bio->bi_next == ((void *)0)) failed at /home/*****/mymodules/vdo/io-submitter.c:396
[1612941.063959] CPU: 12 PID: 3202791 Comm: kvdo20:reqQ Tainted: P        W  OE      6.1.68 #1                                            
[1612941.063963] Hardware name: OEM X79G/X79G, BIOS 4.6.5 08/02/2022        
[1612941.063965] Call Trace:                                                
[1612941.063968]  <TASK>                                                    
[1612941.063973]  dump_stack_lvl+0x4d/0x67                                  
[1612941.063983]  ? enter_zone_read_only_mode+0x50/0x50 [kvdo]             
[1612941.064016]  dump_stack+0x14/0x1a                                      
[1612941.064020]  uds_log_backtrace.cold+0x5/0xa [kvdo]                     
[1612941.064050]  uds_assertion_failed+0x72/0xa0 [kvdo]                     
[1612941.064085]  ? psi_group_change+0x20a/0x460                            
[1612941.064089]  ? sched_clock+0xd/0x20                                    
[1612941.064094]  vdo_submit_metadata_io+0x142/0x180 [kvdo]                 
[1612941.064127]  write_initialized_page+0x75/0x90 [kvdo]                   
[1612941.064149]  write_page+0x1cf/0x210 [kvdo]                             
[1612941.064171]  ? vdo_invoke_completion_callback_with_priority+0x69/0x90 [kvdo]                                                                       
[1612941.064197]  write_page_callback+0x12/0x20 [kvdo]                      
[1612941.064219]  notify_next_waiter+0x67/0x80 [kvdo]                       
[1612941.064248]  return_vio_to_pool+0x81/0xc0 [kvdo]                       
[1612941.064277]  finish_page_write+0x92/0x170 [kvdo]                       
[1612941.064300]  work_queue_runner+0xf5/0x260 [kvdo]                       
[1612941.064328]  ? var_wake_function+0x60/0x60                             
[1612941.064331]  ? get_current_thread_work_queue+0x60/0x60 [kvdo]         
[1612941.064358]  kthread+0xf4/0x120                                        
[1612941.064362]  ? kthread_complete_and_exit+0x30/0x30                     
[1612941.064365]  ret_from_fork+0x22/0x30                                   
[1612941.064371]  </TASK>

The error doesn't seem to affect the I/O, everything continues as without errors, and there are no performance drops.
But I want to know if there is a misconfiguration, bug in VDO, or other issue that can affect the correctness of device.
Linux 6.1.68.
VDO was created with:

vdoformat --logical-size 1500G --uds-memory-size 0.25 --slab-bits=18 /dev/sdab1

DM table:

0 3145728000 vdo V4 /dev/sdab1 20916337 4096 32768 16380

vdodumpconfig /dev/sdab1

VDOConfig:                                                                                        
blockSize: 4096                                                                                 
logicalBlocks: 393216000                                                                        
physicalBlocks: 20916337                                                                        
slabSize: 262144                                                                                
recoveryJournalSize: 32768                                                                      
slabJournalBlocks: 224                                                                        
UUID: ***                                                     
ReleaseVersion: 0                                                                               
Nonce: ***                                                                        
IndexRegion: 1                                                                                  
DataRegion: 679128                                                                              
IndexConfig:                                                                                      
memory: 4294967040                                                                              
sparse: false

There are other VDO devices in the system, created using LVM tools. They operate correctly.
Any explanation of what can cause the error is appreciated.

@thememika
Copy link
Author

thememika commented Feb 23, 2024

I have removed the trigger of these messages from the code and recompiled the module.
For now, my devices are working fine. I will post update if something happens.

@lorelei-sakai
Copy link
Member

Thanks for the report. It is probably safe for you to ignore these assertions. Nonetheless this is not a condition that should occur, so we'll try to dig into this and see if we can figure out how this can happen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants