debug: Add aggressive logging to track main exit
This commit is contained in:
parent
17205a4907
commit
6aab1826f0
1 changed files with 26 additions and 2 deletions
|
|
@ -39,8 +39,8 @@ fn log(msg: &str) {
|
||||||
let _ = std::io::stdout().flush();
|
let _ = std::io::stdout().flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio::main]
|
// Wrapper to catch when main returns
|
||||||
async fn main() -> anyhow::Result<()> {
|
fn run() -> anyhow::Result<()> {
|
||||||
log("=== NORMOGEN STARTING ===");
|
log("=== NORMOGEN STARTING ===");
|
||||||
log("[1/7] Loading environment variables...");
|
log("[1/7] Loading environment variables...");
|
||||||
|
|
||||||
|
|
@ -74,6 +74,8 @@ async fn main() -> anyhow::Result<()> {
|
||||||
};
|
};
|
||||||
|
|
||||||
log(&format!("[4/7] Connecting to MongoDB at {}...", config.database.uri));
|
log(&format!("[4/7] Connecting to MongoDB at {}...", config.database.uri));
|
||||||
|
log("[4/7] Starting MongoDB connection (this may hang)...");
|
||||||
|
|
||||||
let db = match db::MongoDb::new(&config.database.uri, &config.database.database).await {
|
let db = match db::MongoDb::new(&config.database.uri, &config.database.database).await {
|
||||||
Ok(db) => {
|
Ok(db) => {
|
||||||
log("[4/7] MongoDB connection successful!");
|
log("[4/7] MongoDB connection successful!");
|
||||||
|
|
@ -148,10 +150,32 @@ async fn main() -> anyhow::Result<()> {
|
||||||
|
|
||||||
log("=== SERVER READY ===");
|
log("=== SERVER READY ===");
|
||||||
log(&format!("Listening on http://{}:{}", config.server.host, config.server.port));
|
log(&format!("Listening on http://{}:{}", config.server.host, config.server.port));
|
||||||
|
log("About to call axum::serve (this blocks forever)...");
|
||||||
|
|
||||||
tracing::info!("Server listening on {}:{}", config.server.host, config.server.port);
|
tracing::info!("Server listening on {}:{}", config.server.host, config.server.port);
|
||||||
|
|
||||||
|
// This should block forever
|
||||||
axum::serve(listener, app).await?;
|
axum::serve(listener, app).await?;
|
||||||
|
|
||||||
|
// This should never be reached
|
||||||
|
log("[UNEXPECTED] Server stopped!");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[tokio::main]
|
||||||
|
async fn main() {
|
||||||
|
log("MAIN ENTERED");
|
||||||
|
let result = run().await;
|
||||||
|
log(&format!("MAIN EXITING: {:?}", result));
|
||||||
|
std::process::exit(match result {
|
||||||
|
Ok(_) => {
|
||||||
|
log("EXIT CODE 0");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
Err(e) => {
|
||||||
|
log(&format!("EXIT CODE 1: {}", e));
|
||||||
|
1
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue