debug: Add aggressive logging to track main exit
Some checks failed
Lint and Build / Lint (push) Failing after 5s
Lint and Build / Build (push) Has been skipped
Lint and Build / Docker Build (push) Has been skipped

This commit is contained in:
goose 2026-02-21 20:52:42 -03:00
parent 17205a4907
commit 6aab1826f0

View file

@ -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
}
});
}