Environment: CentOS 5 and Syslog-ng 2.0.7 (current snapshot) Relevant syslog-ng.conf snippet: === options { use_dns(persist_only); dns_cache_hosts("/etc/hosts"); }; === If you point syslog-ng to an /etc/hosts file that has more than 1007 entries, upon receiving its first message, syslog-ng will throw the following assertion: # ./syslog-ng -Fed syslog-ng starting up; version='2.0.7' Incoming log entry; line='<38>well hello' file dnscache.c: line 99 (dns_cache_key_hash): should not be reached Aborted Workaround: In syslog-ng.conf, set dns_cache_size() to a value greater than the number of entries in your /etc/hosts file. Fix: See the attached patch; it should apply cleanly to any version of 2.0.7, and perhaps older versions as well. Steve -- Steve Bernacki, Jr To date, the Pan-Massachusetts Challenge has raised 204 million dollars for cancer research. Get involved! http://www.pmc.org/ diff -ur syslog-ng-2.0.7/src/dnscache.c syslog-ng-2.0.7-patch/src/dnscache.c --- syslog-ng-2.0.7/src/dnscache.c 2008-01-03 06:59:18.000000000 -0500 +++ syslog-ng-2.0.7-patch/src/dnscache.c 2008-01-27 09:24:52.000000000 -0500 @@ -271,7 +271,7 @@ } g_hash_table_replace(cache, &entry->key, entry); - if (g_hash_table_size(cache) > dns_cache_size) + if (!persistent && g_hash_table_size(cache) > dns_cache_size) { /* remove oldest element */ g_hash_table_remove(cache, &cache_first.next->key);