[16055] in Athena Bugs

home help back first fref pref prev next nref lref last post

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


home help back first fref pref prev next nref lref last post