Skip to content

Commit df57be1

Browse files
committed
WIP: logging
1 parent 47d9372 commit df57be1

File tree

4 files changed

+29
-2
lines changed

4 files changed

+29
-2
lines changed

turbopack/crates/turbo-tasks-backend/src/backend/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,8 @@ impl TurboTasksBackend {
374374

375375
impl Backend for TurboTasksBackend {
376376
fn startup(&self, turbo_tasks: &dyn TurboTasksBackendApi<Self>) {
377+
self.backing_storage.startup();
378+
377379
// Continue all uncompleted operations
378380
// They can't be interrupted by a snapshot since the snapshotting job has not been scheduled
379381
// yet.

turbopack/crates/turbo-tasks-backend/src/backing_storage.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ use crate::{
1010
};
1111

1212
pub trait BackingStorage {
13+
fn startup(&self);
1314
fn next_free_task_id(&self) -> TaskId;
1415
fn uncompleted_operations(&self) -> Vec<AnyOperation>;
1516
fn save_snapshot(

turbopack/crates/turbo-tasks-backend/src/lmdb_backing_storage.rs

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ use std::{
1212

1313
use anyhow::{anyhow, Context, Result};
1414
use bincode::Options;
15-
use lmdb::{Database, DatabaseFlags, Environment, EnvironmentFlags, Transaction, WriteFlags};
15+
use lmdb::{
16+
Cursor, Database, DatabaseFlags, Environment, EnvironmentFlags, Transaction, WriteFlags,
17+
};
1618
use turbo_tasks::{backend::CachedTaskType, KeyValuePair, TaskId};
1719

1820
use crate::{
@@ -81,9 +83,29 @@ impl LmdbBackingStorage {
8183
restored_cache_entries: AtomicUsize::new(0),
8284
})
8385
}
86+
87+
fn display_db(&self) -> Result<String> {
88+
use std::fmt::Write;
89+
let mut result = String::new();
90+
let tx = self.env.begin_ro_txn()?;
91+
let mut cursor = tx.open_ro_cursor(self.data_db)?;
92+
for (key, value) in cursor.iter() {
93+
let task_id = u32::from_be_bytes(key.try_into()?);
94+
let data: Vec<CachedDataItem> = bincode::deserialize(value)?;
95+
write!(result, "### Task {task_id}\n{data:#?}\n\n")?;
96+
}
97+
Ok(result)
98+
}
8499
}
85100

86101
impl BackingStorage for LmdbBackingStorage {
102+
fn startup(&self) {
103+
println!(
104+
"Database content:\n{}",
105+
self.display_db().unwrap_or_default()
106+
);
107+
}
108+
87109
fn next_free_task_id(&self) -> TaskId {
88110
fn get(this: &LmdbBackingStorage) -> Result<u32> {
89111
let tx = this.env.begin_rw_txn()?;
@@ -219,6 +241,7 @@ impl BackingStorage for LmdbBackingStorage {
219241
.into_iter()
220242
.map(|(key, value)| CachedDataItem::from_key_and_value(key, value))
221243
.collect();
244+
println!("Store {task_id}: {vec:?}");
222245
let value = match bincode::serialize(&vec) {
223246
// Ok(value) => value,
224247
Ok(_) | Err(_) => {
@@ -339,6 +362,7 @@ impl BackingStorage for LmdbBackingStorage {
339362
.inspect_err(|err| println!("Looking up data for {task_id} failed: {err:?}"))
340363
.unwrap_or_default();
341364
if !result.is_empty() {
365+
println!("restored {task_id}");
342366
self.restored_tasks
343367
.fetch_add(1, std::sync::atomic::Ordering::Relaxed);
344368
}

turbopack/crates/turbo-tasks/src/manager.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,7 @@ impl<B: Backend + 'static> TurboTasks<B> {
350350
event_background: Event::new(|| "TurboTasks::event_background".to_string()),
351351
program_start: Instant::now(),
352352
});
353-
this.backend.startup(&*this);
353+
TURBO_TASKS.sync_scope(this.pin(), || this.backend.startup(&*this));
354354
this
355355
}
356356

0 commit comments

Comments
 (0)