sxyazi/yazi · error · io::Error

seek overflow

Error message

seek overflow

What it means

Error "seek overflow" thrown in sxyazi/yazi.

Source

Thrown at yazi-vfs/src/engine/lua/file.rs:141

		let result = ready!(me.pending_read.as_mut().unwrap().as_mut().poll(cx));
		me.pending_read = None;

		Poll::Ready(result.map(|bytes| {
			let n = bytes.len().min(buf.remaining());
			buf.put_slice(&bytes[..n]);
			me.pos = me.pos.checked_add(n as u64).expect("offset overflow");
		}))
	}
}

impl AsyncSeek for File {
	fn start_seek(self: Pin<&mut Self>, position: SeekFrom) -> io::Result<()> {
		let me = self.get_mut();
		if me.pending_seek.is_some() {
			return Err(io::Error::other("call poll_complete before start_seek"));
		}

		me.pending_seek = Some(match position {
			SeekFrom::Start(n) => SeekState::NonBlocking(n),
			SeekFrom::Current(n) => me
				.pos
				.checked_add_signed(n)
				.map(SeekState::NonBlocking)
				.ok_or_else(|| io::Error::new(io::ErrorKind::InvalidInput, "seek overflow"))?,
			SeekFrom::End(n) => {
				let service = me.service.clone();
				let job = ProvideJob::Metadata { url: me.url.clone() };
				SeekState::Blocking(
					n,
					Box::pin(async move { Ok(RUNNER.provide::<Cha>(service, job).await.0?.len) }),
				)
			}
		});

		Ok(())
	}

View on GitHub (pinned to 8ebf930f17)

Solutions

  1. Seek to an offset within the file's representable range; clamp the requested offset before seeking.

When it happens

Trigger: Thrown at yazi-vfs/src/engine/lua/file.rs:141 when the library encounters an invalid state.

Common situations: Seeking to an offset that overflows the file's representable range in a Lua VFS file handle.


AI-assisted analysis of sxyazi/yazi@8ebf930f17 (2026-08-19). Data as JSON: /api/errors/0de867bf5a404a5d. Report an issue: GitHub.