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

VERIFY3(dev->l2ad_hand + distance < dev->l2ad_end) failed #16202

Closed
VoxSciurorum opened this issue May 16, 2024 · 1 comment · Fixed by #16207
Closed

VERIFY3(dev->l2ad_hand + distance < dev->l2ad_end) failed #16202

VoxSciurorum opened this issue May 16, 2024 · 1 comment · Fixed by #16207
Labels
Type: Defect Incorrect behavior (e.g. crash, hang)

Comments

@VoxSciurorum
Copy link

System information

Type Version/Name
Distribution Name FreeBSD
Distribution Version 13.3-STABLE
Kernel Version 13.3-STABLE
Architecture amd64
OpenZFS Version zfs-2.1.15-FreeBSD_gfb6d53206

Describe the problem you're observing

While receiving an rsync incremental update, and doing nothing else, my server crashed with

panic: VERIFY3(dev->l2ad_hand + distance < dev->l2ad_end) failed (161060749312 < 161060749312)

This is in l2arc_evict in arc.c. I suspect < may need to be <=.

Describe how to reproduce the problem

It happened only once.

Include any warning/errors/backtraces from the system logs

The dev pointer points at

 l2ad_hand = 161051246592,
 l2ad_start = 4198400,
 l2ad_end = 161060749312,
 l2ad_first = 0,
 l2ad_writing = 0,

Variable distance is 9502720, equal to l2ad_end - l2ad_hand, as expected from the panic message.

My server has a raidz2 pool on hard drives with a cache on SSD. RAM is 24 GB.

Reported to FreeBSD at https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=279038.

@VoxSciurorum VoxSciurorum added the Type: Defect Incorrect behavior (e.g. crash, hang) label May 16, 2024
@gamanakis
Copy link
Contributor

Thanks for reporting this, you are probably right. I will take a look.

gamanakis added a commit to gamanakis/zfs that referenced this issue May 18, 2024
At the end of l2arc_evict() fix an assertion in the case that l2ad_hand
+ distance == l2ad_end.

Closes openzfs#16202

Signed-off-by: George Amanakis <gamanakis@gmail.com>
gamanakis added a commit to gamanakis/zfs that referenced this issue May 19, 2024
At the end of l2arc_evict() fix an assertion in the case that l2ad_hand
+ distance == l2ad_end.

Closes openzfs#16202

Signed-off-by: George Amanakis <gamanakis@gmail.com>
behlendorf pushed a commit that referenced this issue May 25, 2024
At the end of l2arc_evict() fix an assertion in the case that l2ad_hand
+ distance == l2ad_end.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: George Amanakis <gamanakis@gmail.com>
Closes #16202
Closes #16207
gamanakis added a commit to gamanakis/zfs that referenced this issue May 27, 2024
At the end of l2arc_evict() fix an assertion in the case that l2ad_hand
+ distance == l2ad_end.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: George Amanakis <gamanakis@gmail.com>
Closes openzfs#16202
Closes openzfs#16207
behlendorf pushed a commit that referenced this issue May 29, 2024
At the end of l2arc_evict() fix an assertion in the case that l2ad_hand
+ distance == l2ad_end.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: George Amanakis <gamanakis@gmail.com>
Closes #16202
Closes #16207
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Defect Incorrect behavior (e.g. crash, hang)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants