add posix FD list to AwaitingFiletableChange and EBADF logs

This commit is contained in:
2026-07-11 06:18:41 +03:00
parent 8d127d3796
commit be8b1a9f79
2 changed files with 15 additions and 4 deletions
+9 -2
View File
@@ -766,7 +766,7 @@ impl KernelScheme for ProcScheme {
kind: ContextHandle::AwaitingFiletableChange { new_ft },
context,
} => {
let (posix_count, upper_count, upper_list) = {
let (posix_count, upper_count, upper_list, posix_list) = {
let ft = new_ft.read(token.token());
let pc = ft.posix_fdtbl.iter().filter(|f| f.is_some()).count();
let uc = ft.upper_fdtbl.iter().filter(|f| f.is_some()).count();
@@ -776,7 +776,13 @@ impl KernelScheme for ProcScheme {
ul.push_str(&format!(" {:x}", i));
}
}
(pc, uc, ul)
let mut pl = String::new();
for (i, f) in ft.posix_fdtbl.iter().enumerate() {
if f.is_some() {
pl.push_str(&format!(" {}", i));
}
}
(pc, uc, ul, pl)
};
let ctx_name = context.read(token.token()).name;
info!(
@@ -784,6 +790,7 @@ impl KernelScheme for ProcScheme {
ctx_name, posix_count, upper_count
);
info!("upper FDs present:{}", upper_list);
info!("posix FDs present:{}", posix_list);
context.write(token.token()).files = new_ft;
}
_ => (),
+6 -2
View File
@@ -93,9 +93,13 @@ pub fn openat(
.filter(|(_, f)| f.is_some())
.map(|(i, _)| i.to_string())
.collect::<Vec<_>>().join(",");
let posix_present: String = ft.posix_fdtbl.iter().enumerate()
.filter(|(_, f)| f.is_some())
.map(|(i, _)| i.to_string())
.collect::<Vec<_>>().join(",");
info!(
"openat: EBADF fh={:#x} ctx='{}' is_upper={} idx={} upper_len={} upper_at_idx={} upper_present=[{}]",
raw, name, is_upper, stripped, upper_len, upper_at_idx, upper_present
"openat: EBADF fh={:#x} ctx='{}' is_upper={} idx={} upper_len={} upper_at_idx={} upper_present=[{}] posix_present=[{}]",
raw, name, is_upper, stripped, upper_len, upper_at_idx, upper_present, posix_present
);
Error::new(EBADF)
})?;