fix: Replace silent panics on bind and index creation with daemon_error.log writes
This commit is contained in:
1 parent
2fdb03c302
commit
28761ceb41
1 file changed
+20
-2
+20
-2
@@ -407,7 +407,16 @@ fn run_server(state: Arc<MemoryState>) -> Result<(), Box<dyn std::error::Error>>
|
|||||||
let addr = std::env::var("MCP_PORT").unwrap_or_else(|_| "3000".to_string());
|
let addr = std::env::var("MCP_PORT").unwrap_or_else(|_| "3000".to_string());
|
||||||
let addr: std::net::SocketAddr = format!("127.0.0.1:{}", addr).parse().unwrap();
|
let addr: std::net::SocketAddr = format!("127.0.0.1:{}", addr).parse().unwrap();
|
||||||
|
|
||||||
let listener = tokio::net::TcpListener::bind(addr).await.unwrap();
|
let listener = match tokio::net::TcpListener::bind(addr).await {
|
||||||
|
Ok(l) => l,
|
||||||
|
Err(e) => {
|
||||||
|
let log_path = dirs::home_dir()
|
||||||
|
.unwrap_or_default()
|
||||||
|
.join(".gemini/mcp_memory/daemon_error.log");
|
||||||
|
let _ = std::fs::write(&log_path, format!("Failed to bind to {}: {}\n", addr, e));
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
};
|
||||||
if let Err(e) = axum::serve(listener, app.into_make_service()).await {
|
if let Err(e) = axum::serve(listener, app.into_make_service()).await {
|
||||||
let log_path = dirs::home_dir()
|
let log_path = dirs::home_dir()
|
||||||
.unwrap_or_default()
|
.unwrap_or_default()
|
||||||
@@ -745,7 +754,16 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
let state = Arc::new(MemoryState {
|
let state = Arc::new(MemoryState {
|
||||||
graph: Store::new("knowledge_graph_master", db.clone()),
|
graph: Store::new("knowledge_graph_master", db.clone()),
|
||||||
base_dir: base.clone(),
|
base_dir: base.clone(),
|
||||||
search_index: RwLock::new(crate::search::MemoryIndex::new(&base).unwrap()),
|
search_index: RwLock::new(match crate::search::MemoryIndex::new(&base) {
|
||||||
|
Ok(idx) => idx,
|
||||||
|
Err(e) => {
|
||||||
|
let log_path = dirs::home_dir()
|
||||||
|
.unwrap_or_default()
|
||||||
|
.join(".gemini/mcp_memory/daemon_error.log");
|
||||||
|
let _ = std::fs::write(&log_path, format!("Failed to create MemoryIndex: {}\n", e));
|
||||||
|
std::process::exit(1);
|
||||||
|
}
|
||||||
|
}),
|
||||||
ledger: Store::new("audit_ledger", db.clone()),
|
ledger: Store::new("audit_ledger", db.clone()),
|
||||||
sticky: Store::new("sticky_notes", db.clone()),
|
sticky: Store::new("sticky_notes", db.clone()),
|
||||||
tasks: Store::new("tasks", db.clone()),
|
tasks: Store::new("tasks", db.clone()),
|
||||||
|
|||||||
Reference in new issue
Block a user