add posix FD list to AwaitingFiletableChange and EBADF logs
This commit is contained in:
+9
-2
@@ -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
@@ -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)
|
||||
})?;
|
||||
|
||||
Reference in New Issue
Block a user