libevent icon indicating copy to clipboard operation
libevent copied to clipboard

FAIL test/regress_dns.c:1558: assert(be_outcome[3].dnserr != 0): 0 vs 0dns/bufferevent_connect_hostname_emfile: [msg] Nameserver 127.0.0.1:55375 has failed: request timed out.

Open psumbera opened this issue 3 years ago • 4 comments

gmake check (with latest sources) fails on Solaris with following error:

./test/test.sh -b SELECT
Running tests:
SELECT
 test-eof: OKAY
 test-closed: [warn] event_base_new_with_config: no event mechanism available
OKAY
 test-weof: OKAY
 test-time: OKAY
 test-changelist: OKAY
 test-fdleak: OKAY
 test-dumpevents: OKAY
 regress:
  FAIL test/regress_dns.c:1558: assert(be_outcome[3].dnserr != 0): 0 vs 0dns/bufferevent_connect_hostname_emfile: [msg] Nameserver 127.0.0.1:55375 has failed: request timed out.
[msg] All nameservers have failed
[warn] EVDNS_SOPT_TCP_MAX_CLIENTS option can be set only on TCP server
[warn] EVDNS_SOPT_TCP_MAX_CLIENTS option can be set only on TCP server
[warn] EVDNS_SOPT_TCP_IDLE_TIMEOUT option can be set only on TCP server
[warn] EVDNS_SOPT_TCP_IDLE_TIMEOUT option can be set only on TCP server
1/381 TESTS FAILED. (46 skipped)
FAILED
 regress_debug:
  FAIL test/regress_dns.c:1558: assert(be_outcome[3].dnserr != 0): 0 vs 0dns/bufferevent_connect_hostname_emfile: [msg] Nameserver 127.0.0.1:60405 has failed: request timed out.
[msg] All nameservers have failed
[warn] EVDNS_SOPT_TCP_MAX_CLIENTS option can be set only on TCP server
[warn] EVDNS_SOPT_TCP_MAX_CLIENTS option can be set only on TCP server
[warn] EVDNS_SOPT_TCP_IDLE_TIMEOUT option can be set only on TCP server
[warn] EVDNS_SOPT_TCP_IDLE_TIMEOUT option can be set only on TCP server
1/381 TESTS FAILED. (46 skipped)
FAILED
gmake[3]: *** [Makefile:3447: test_runner_select] Error 1

psumbera avatar Sep 23 '22 08:09 psumbera

Hello! Thank you for the report. Is this error permanent? There are some well known flakiness actually.

azat avatar Sep 25 '22 20:09 azat

There are some well known flakiness actually.

But this is not one of them. Interesting why it does not fail, can you share strace.log and ltrace.log:

  • strace -s 1000 -o strace.log regress --no-fork dns/bufferevent_connect_hostname_emfile
  • ltrace -s 1000 -o ltrace.log regress --no-fork dns/bufferevent_connect_hostname_emfile

azat avatar Sep 25 '22 20:09 azat

It happens always when I run: test.sh -b SELECT.

Note that this is Solaris so we don't have strace. Instead we have truss.

But when I run directly regress nothing happens:

 ./regress --no-fork dns/bufferevent_connect_hostname_emfile
dns/bufferevent_connect_hostname_emfile: OK
1 tests ok.  (0 skipped)

And when I run it without test name it fails like this:

./regress --no-fork
main/methods: OK
main/version: OK
..
main/gettimeofday_cached_disabled_nosleep: OK
main/active_by_fd: OK
main/fork: OK
main/del_wait: [warn] Can't change lock callbacks once they have been initialized.
[err] evthread.c:277: Assertion lock->held_by == me failed in evthread_debug_lock_mark_unlocked
Abort (core dumped)

psumbera avatar Sep 26 '22 06:09 psumbera

Interesting here is completely different error, it got SIGSEGV. If you have an ability to post stacktraces, dtruss output something else, that will be great. Otherwise this will wait until I will setup env with solaris.

azat avatar Oct 23 '22 20:10 azat