OK. I still have no idea why spoof source libnet and sql libdbi fail to load. But I did get a good idea why the init still fails with the cryptic pipeline message with those disabled. #0 log_db_parser_init (s=0x3dcb270, cfg=0x3d9d860) at dbparser.c:147 #1 0x00002abeea802f79 in log_parser_init (s=0x3dcb270, cfg=0x3d9d860) at logparser.h:56 #2 0x00002abeea802f27 in log_parser_rule_init (s=0x3dcb360, cfg=0x3d9d860) at logparser.c:105 #3 0x00002abeea803269 in log_process_rule_init (s=0x3dcb360, cfg=0x3d9d860) at logprocess.h:62 #4 0x00002abeea803238 in log_process_pipe_init (s=0x3dccdd0) at logprocess.c:60 #5 0x00002abeea7f0036 in log_pipe_init (s=0x3dccdd0, cfg=0x3d9d860) at logpipe.h:91 #6 0x00002abeea7eff34 in log_center_init (self=0x3da96f0, cfg=0x3d9d860) at center.c:508 #7 0x00002abeea7e6caf in cfg_init (cfg=0x3d9d860) at cfg.c:245 #8 0x00002abeea7e7846 in cfg_initial_init (cfg=0x3d9d860, persist_filename=0x402d10 "/home/y/var/run/syslog-ng/syslog-ng.persist") at cfg.c:510 #9 0x00000000004027f6 in initial_init (cfg=0x7fff1e086978) at main.c:287 #10 0x0000000000402b4c in main (argc=1, argv=0x7fff1e086a78) at main.c:426 log_db_parser_init can fail an init without logging an error and pass it all the way back up to log_center_init without explaining what failed, why it failed, or how it failed, in some cases. log_center_init is so far up it doesn't know how to log a useful message about what really happened. Apparently, in log_db_parser_reload_database from dbparser.c you can get a case where: if ((self->db_file_inode == st.st_ino && self->db_file_mtime == st.st_mtime)) forces an early return despite the fact that self->db is still NULL. I think this can happen when cfg_persist_config_fetch is supposed to have the DB stored already but it unexpectedly does not. I will have to investigate what's gone wrong with the persistent storage on my system. Probably a missing directory cause a file write failure, etc. Breakpoint 46, log_db_parser_init (s=0x1009d270, cfg=0x1006f860) at dbparser.c:121 121 LogDBParser *self = (LogDBParser *) s; 123 self->db = cfg_persist_config_fetch(cfg, log_db_parser_format_persist_name(self)); 124 if (self->db) (gdb) print self->db *** self->db fails to initialize via cfg_persist_config_fetch *** $32 = (PatternDB *) 0x0 142 log_db_parser_reload_database(self); Breakpoint 49, log_db_parser_reload_database (self=0x1009d270) at dbparser.c:61 61 if (stat(self->db_file, &st) < 0) 68 if ((self->db_file_inode == st.st_ino && self->db_file_mtime == st.st_mtime)) *** early return happens here without checking if self->db == NULL *** 98 } ... Breakpoint 47, log_db_parser_init (s=0x1009d270, cfg=0x1006f860) at dbparser.c:146 146 return self->db != NULL; (gdb) print self->db $33 = (PatternDB *) 0x0 (gdb) n ... log_parser_rule_init (s=0x1009d360, cfg=0x1006f860) at logparser.c:106 106 success = FALSE; ... log_pipe_init (s=0x1009edd0, cfg=0x1006f860) at logpipe.h:96 96 return FALSE; ... log_center_init (self=0x1007b6f0, cfg=0x1006f860) at center.c:510 510 msg_error("Error initializing message pipeline", Matthew.