[16055] in Athena Bugs
heisenbug in Solaris res_mkquery (libresolv)
daemon@ATHENA.MIT.EDU (Jacob Morzinski)
Wed Jul 29 19:48:59 1998
Date: Wed, 29 Jul 1998 19:48:46 -0400 (EDT)
From: Jacob Morzinski <jmorzins@MIT.EDU>
Reply-To: Jacob Morzinski <jmorzins@MIT.EDU>
To: bugs@MIT.EDU
A program I'm trying to maintain, Pine (hacked to include Hesiod
support) seems to evoke a bug in Solaris's libresolv. When Pine
tries to determine the user's mailbox using hes_getmailhost,
libhesiod eventually calls res_mkquery. I can't trace the source
code past that point, but res_mkquery prints a few times on stderr:
setstate: state info has been munged; not changed.
I'm not sure what would cause the resolver to call random-number
routines. However, since res_mkquery [documented in resolver(3N)]
makes no mention of anything resembling setstate [docomented in
random(3C)] in its man page, I'm going to claim this is a bug
in Solaris's libresolv, report it here, and be done with it.
-Jacob Morzinski
If anyone wants more information:
I've seen setstate error mesage appear on 8.1 and 8.2 suns. To
complicate things, the message appears at least 95% of the time
when I call hes_getmailhost, but not 100% of the time.
(Oddly, I've never seen portnoy, a 8.1 sun in the sipb office,
produce the messages.)
I've included a function backtrace of pine, stopped just before
it calls res_mkquery in the file hesiod.c. (Pine source code is
in /mit/sipb/src/pine/pine3.96/pine/; the hesiod.c I compiled with
is presumably from /mit/source-8.1/athena/lib/hesiod/, but I
tried recomipling under Athena 8.2 with krb4 compatibility stuff,
and still see the same behavior.)
Pine has been stopped at line 359 of hesiod.c, just before
calling res_mkquery:
#0 0x17b53c in get_txt_records (ctx=0x21a740, qclass=1,
name=0x247770 "jmorzins.pobox.ns.athena.mit.edu") at hesiod.c:359
#1 0x17ad1c in hesiod_resolve (context=0x21a740, name=0xefffd330 "jmorzins",
type=0x1e33d8 "pobox") at hesiod.c:229
#2 0x17bc78 in hesiod_getmailhost (context=0x21a740,
user=0xefffd330 "jmorzins") at hesmailhost.c:37
#3 0x17a510 in hes_getmailhost (name=0xefffd330 "jmorzins") at hescompat.c:121
#4 0x1677cc in pop3_open (stream=0x247680) at pop3.c:333
#5 0x14afb8 in mail_open (stream=0x247680,
name=0xefffe510 "{MIT.EDU/hesiod/kerberos/pop3}inbox", options=0)
at mail.c:748
#6 0x679ec in context_open (context=0x219410 "[]", old=0x0,
name=0xefffe510 "{MIT.EDU/hesiod/kerberos/pop3}inbox", opt=0)
at context.c:499
#7 0xaa948 in do_broach_folder (
newfolder=0x21b758 "{MIT.EDU/hesiod/kerberos/pop3}inbox",
new_context=0x21b6c8) at mailcmd.c:3683
#8 0x7cdd0 in folder_lister (ps=0x213d38, do_what=FolderMaint,
start_context=0x0, return_context=0x0, return_string=0x0,
return_array=0x0, context_list=0x21b6c8, f_state=0x0) at folder.c:982
#9 0x79bd4 in folder_screen (pine_state=0x213d38) at folder.c:201
#10 0xeee88 in main (argc=1, argv=0xeffff284) at pine.c:866