(fwd) Re: Problem with 0.9.3

John Berninger <[email protected]>
Newsgroups gmane.network.up2date.current.devel
Message-ID <[email protected]>
After looking at a diff between 0.9.2 and 0.9.3, I /think/ I spotted the
bug causing this.  In the header verification section, 0.9.2 checks the
type of the header object to ensure it is a list of lists, 0.9.3 does
not.  I've created the atached patch against the base 0.9.3 tree to
re-add this functionality; let me know if it works the way it should...

On Fri, 25 Jan 2002, Rob Hagopian wrote:

> You're not the only one, I have the same problem - Hunter & I are trying to
> track it down, somehow the channel info is getting messed up so it's
> miscalculating the checksum...
> 
> The solution is to use 0.9.2 for right now if 0.9.3 doesn't work for you (it
> works for Hunter :-) )
> 								-Rob
> 
> -----Original Message-----
> From: Patrick Zwahlen [mailto:[email protected]]
> Sent: Friday, January 25, 2002 10:05 AM
> To: '[email protected]'
> Subject: [Current-server] Problem with 0.9.3
> 
> 
> Hi everybody,
> 
> This is my first attempt to have CURRENT working, but I have to say that I'm
> *very* interested in this server.
> 
> I'm trying to run it on one of my 20 servers (redhat 7.2) in order to
> upgrade the 19 remaining ones (and myself...)
> 
> All my servers are currently running stock redhat 7.2 (unpatched). I have
> just upgraded up2date and rhn_register. This means:
> 
> current 0.9.3 (RPM)
> up2date      2.7.11
> rhn_register 2.7.11
> 
> I ran the create certificate file, and put the client certificate on every
> machine.
> 
> rhn_register works perfectly !
> 
> When I try to do an 'up2date --showall' I have the following message on the
> client side:
> 
> ==================================================
> Traceback (innermost last):
>   File "/usr/sbin/up2date", line 1014, in ?
>     main()
>   File "/usr/sbin/up2date", line 271, in main
>     printList(up2date.getAvailablePackageList())
>   File "/usr/share/rhn/up2date_client/up2date.py", line 690, in
> getAvailablePackageList
>     progressCallback = progressCallback )
>   File "/usr/share/rhn/up2date_client/up2date.py", line 313, in doCall
>     raise CommunicationError(e.errmsg)
> up2date_client.up2date.CommunicationError: Error communicating with server.
> The message was:
> 400: "Client not authorized" while attempting to get
> $RHN/redhat/listPackages/20020125162424
> ==================================================
> 
> And on the server side:
> 
> ==================================================
> /usr/share/current/standalone.py:do_POST(None)
> Requesting: up2date.login
> (/usr/share/current/standalone.py, do_POST(), 71):   with params =
> [{'client_address': ('127.0.0.1',
>  38421),
>   'command': 'POST',
>   'headers': <mimetools.Message instance at 81f4c60>,
>   'path': 'https://libra.onspirix.ch:8081/XMLRPC',
>   'version': ''},
>  '<?xml
> version="1.0"?>\012<params>\012<param>\012<value><struct>\012<member>\012<na
> me>type</name>\0
> 12<value><string>REAL</string></value>\012</member>\012<member>\012<name>arc
> hitecture</name>\012<val
> ue><string>i686</string></value>\012</member>\012<member>\012<name>checksum<
> /name>\012<value><string
> >9849e0ed1ae6ef8c68014c04c2f413756be7d252</string></value>\012</member>\012<
> member>\012<name>os_rele
> ase</name>\012<value><string>7.2</string></value>\012</member>\012<member>\0
> 12<name>description</nam
> e>\012<value><string>7.2 running on
> i686</string></value>\012</member>\012<member>\012<name>system_i
> d</name>\012<value><string>Current-ANONYMOUS</string></value>\012</member>\0
> 12<member>\012<name>oper
> ating_system</name>\012<value><string>Red Hat
> Linux</string></value>\012</member>\012<member>\012<na
> me>profile_name</name>\012<value><string>libra.onspirix.ch</string></value>\
> 012</member>\012<member>
> \012<name>fields</name>\012<value><array><data>\012<value><string>type</stri
> ng></value>\012<value><s
> tring>operating_system</string></value>\012<value><string>checksum</string><
> /value>\012<value><strin
> g>description</string></value>\012<value><string>os_release</string></value>
> \012<value><string>archi
> tecture</string></value>\012<value><string>system_id</string></value>\012<va
> lue><string>profile_name
> </string></value>\012<value><string>username</string></value>\012</data></ar
> ray></value>\012</member
> >\012<member>\012<name>username</name>\012<value><string>libra</string></val
> ue>\012</member>\012</st
> ruct></value>\012</param>\012</params>\012']
> module = up2date
> function = login
> (/usr/share/current/standalone.py, callAPIMethod(), 271): params =
> [{'client_address': ('127.0.0.1',
>  38421),
>   'command': 'POST',
>   'headers': <mimetools.Message instance at 81f4c60>,
>   'path': 'https://libra.onspirix.ch:8081/XMLRPC',
>   'version': ''},
>  '<?xml
> version="1.0"?>\012<params>\012<param>\012<value><struct>\012<member>\012<na
> me>type</name>\0
> 12<value><string>REAL</string></value>\012</member>\012<member>\012<name>arc
> hitecture</name>\012<val
> ue><string>i686</string></value>\012</member>\012<member>\012<name>checksum<
> /name>\012<value><string
> >9849e0ed1ae6ef8c68014c04c2f413756be7d252</string></value>\012</member>\012<
> member>\012<name>os_rele
> ase</name>\012<value><string>7.2</string></value>\012</member>\012<member>\0
> 12<name>description</nam
> e>\012<value><string>7.2 running on
> i686</string></value>\012</member>\012<member>\012<name>system_i
> d</name>\012<value><string>Current-ANONYMOUS</string></value>\012</member>\0
> 12<member>\012<name>oper
> ating_system</name>\012<value><string>Red Hat
> Linux</string></value>\012</member>\012<member>\012<na
> me>profile_name</name>\012<value><string>libra.onspirix.ch</string></value>\
> 012</member>\012<member>
> \012<name>fields</name>\012<value><array><data>\012<value><string>type</stri
> ng></value>\012<value><s
> tring>operating_system</string></value>\012<value><string>checksum</string><
> /value>\012<value><strin
> g>description</string></value>\012<value><string>os_release</string></value>
> \012<value><string>archi
> tecture</string></value>\012<value><string>system_id</string></value>\012<va
> lue><string>profile_name
> </string></value>\012<value><string>username</string></value>\012</data></ar
> ray></value>\012</member
> >\012<member>\012<name>username</name>\012<value><string>libra</string></val
> ue>\012</member>\012</st
> ruct></value>\012</param>\012</params>\012']
> Dispatching: up2date.login
> /usr/share/current/up2date.py:login({'connInfo': {'client_address':
> ('127.0.0.1', 38421), 'command':
>  'POST', 'version': '', 'headers': <mimetools.Message instance at 81f4c60>,
> 'path': 'https://libra.o
> nspirix.ch:8081/XMLRPC'}, 'sysid_string': '<?xml
> version="1.0"?>\012<params>\012<param>\012<value><s
> truct>\012<member>\012<name>type</name>\012<value><string>REAL</string></val
> ue>\012</member>\012<mem
> ber>\012<name>architecture</name>\012<value><string>i686</string></value>\01
> 2</member>\012<member>\0
> 12<name>checksum</name>\012<value><string>9849e0ed1ae6ef8c68014c04c2f413756b
> e7d252</string></value>\
> 012</member>\012<member>\012<name>os_release</name>\012<value><string>7.2</s
> tring></value>\012</memb
> er>\012<member>\012<name>description</name>\012<value><string>7.2 running on
> i686</string></value>\0
> 12</member>\012<member>\012<name>system_id</name>\012<value><string>Current-
> ANONYMOUS</string></valu
> e>\012</member>\012<member>\012<name>operating_system</name>\012<value><stri
> ng>Red Hat Linux</string
> ></value>\012</member>\012<member>\012<name>profile_name</name>\012<value><s
> tring>libra.onspirix.ch<
> /string></value>\012</member>\012<member>\012<name>fields</name>\012<value><
> array><data>\012<value><
> string>type</string></value>\012<value><string>operating_system</string></va
> lue>\012<value><string>c
> hecksum</string></value>\012<value><string>description</string></value>\012<
> value><string>os_release
> </string></value>\012<value><string>architecture</string></value>\012<value>
> <string>system_id</strin
> g></value>\012<value><string>profile_name</string></value>\012<value><string
> >username</string></valu
> e>\012</data></array></value>\012</member>\012<member>\012<name>username</na
> me>\012<value><string>li
> bra</string></value>\012</member>\012</struct></value>\012</param>\012</para
> ms>\012'})
> /usr/share/current/packagedb.py:getCompatibleChannels({'client_arch':
> 'i686', 'client_release': '7.2
> '})
> /usr/share/current/packagedb.py:_getCannonArch({'arch': 'i686'})
> Result was normal
> (/usr/share/current/standalone.py, sendClientResult(), 202): Result =
> {'data': {'X-RHN-Auth': '683c6
> 8b1d8b23c25b663c8b1a1b28854eb3e2500', 'X-RHN-Server-Id': 'libra',
> 'X-RHN-Auth-Expiration': '10119818
> 45', 'X-RHN-Auth-Channels': [['redhat', '20020125165827']],
> 'X-RHN-Auth-User-Id': 'libra'}, 'type':
> 'xml'}
> (/usr/share/current/standalone.py, sendClientResult(), 228): POST
> sendClientResult() finished
> /usr/share/current/standalone.py:do_GET(None)
> connInfo = {'client_address': ('127.0.0.1', 38423),
>  'command': 'GET',
>  'headers': <mimetools.Message instance at 81fa588>,
>  'path':
> 'https://libra.onspirix.ch:8081/XMLRPC/$RHN/redhat/listPackages/200201251658
> 27',
>  'version': ''}
> headers = {'host': 'libra.onspirix.ch:8081',
>  'user-agent': 'rhnHTTPlib.py/1.25',
>  'x-info': 'Red Hat Network Update Agent (C) Red Hat, Inc ($Revision: 1.25
> $)',
>  'x-rhn-auth': '683c68b1d8b23c25b663c8b1a1b28854eb3e2500',
>  'x-rhn-auth-channels': "['redhat', '20020125165827']",
>  'x-rhn-auth-expiration': '1011981845',
>  'x-rhn-auth-user-id': 'libra',
>  'x-rhn-client-version': '2',
>  'x-rhn-server-id': 'libra'}
> /usr/share/current/standalone.py:parseGetPath({'path':
> 'https://libra.onspirix.ch:8081/XMLRPC/$RHN/r
> edhat/listPackages/20020125165827'})
> Requesting: up2date.listPackages
> (/usr/share/current/standalone.py, do_GET(), 104):   with params =
> [{'client_address': ('127.0.0.1',
>  38423),
>   'command': 'GET',
>   'headers': <mimetools.Message instance at 81fa588>,
>   'path':
> 'https://libra.onspirix.ch:8081/XMLRPC/$RHN/redhat/listPackages/200201251658
> 27',
>   'version': ''},
>  'redhat',
>  '20020125165827']
> module = up2date
> function = listPackages
> (/usr/share/current/standalone.py, callAPIMethod(), 271): params =
> [{'client_address': ('127.0.0.1',
>  38423),
>   'command': 'GET',
>   'headers': <mimetools.Message instance at 81fa588>,
>   'path':
> 'https://libra.onspirix.ch:8081/XMLRPC/$RHN/redhat/listPackages/200201251658
> 27',
>   'version': ''},
>  'redhat',
>  '20020125165827']
> Dispatching: up2date.listPackages
> /usr/share/current/up2date.py:_getFile({'filename': '20020125165827',
> 'chan_label': 'redhat', 'metho
> d': <method PackageDB.getPackageList of PackageDB instance at 8128f80>,
> 'connInfo': {'client_address
> ': ('127.0.0.1', 38423), 'command': 'GET', 'version': '', 'headers':
> <mimetools.Message instance at
> 81fa588>, 'path':
> 'https://libra.onspirix.ch:8081/XMLRPC/$RHN/redhat/listPackages/200201251658
> 27'}})
> /usr/share/current/auth.py:isValid({})
> calculated checksum ac2e24c0cf4f250ba8b5cba2030673bbb6b6e994 didn't match
> client 683c68b1d8b23c25b66
> 3c8b1a1b28854eb3e2500
> Result is a Fault
> (/usr/share/current/standalone.py, sendClientResult(), 228): GET
> sendClientResult() finished
> ==================================================
> 
> Any clue about the problem ?
> 
> Many thanks for your precious help, and your wonderful application...
> --
> Patrick Zwahlen            Mail:   [email protected]
> ISP/ASP Engineer           Phone:  +41 (0)22-363-6823
> onSpirix                   Fax:    +41 (0)22-363-6801
> Ch. de la Vuarpilliere 31  Mobile: +41 (0)79-257-9884
> CH-1260 NYON               Web:    http://www.onspirix.ch 
> _______________________________________________
> Current-server mailing list
> [email protected]
> http://lists.dulug.duke.edu/mailman/listinfo/current-server
> _______________________________________________
> Current-server mailing list
> [email protected]
> http://lists.dulug.duke.edu/mailman/listinfo/current-server

-- 
Thank you,
John Berninger

Systems Administrator		[email protected]
Department of Mathematics	Box 8205, Harrelson Hall
NC State University		Raleigh, NC 27695
Phone:  (919)515-6315		Fax:	(919)515-3798

GPG Key ID: A8C1D45C
        Fingerprint: B1BB 90CB 5314 3113 CF22  66AE 822D 42A8 A8C1 D45C
--
header.patch (text/plain, 905 B)
diff -bru current-0.9.3/auth.py current-devel/auth.py
--- current-0.9.3/auth.py	Tue Jan  8 23:54:39 2002
+++ current-devel/auth.py	Fri Jan 25 14:34:29 2002
@@ -177,9 +177,15 @@
         else:
             cp = ConstructParser.ConstructParser(headers[header_attr])
             try:
-                self.data['X-RHN-Auth-Channels'] = cp.parseIt()
+                cp.parseIt()
+                tmpHdr = cp.getObject()
             except:
-                self.data['X-RHN-Auth-Channels'] = ''
+                tmpHdr = ''
+            if not type(tmpHdr) == type([]):
+                self.data['X-RHN-Auth-Channels'] = [tmpHdr]
+            else:
+                self.data['X-RHN-Auth-Channels'] = tmpHdr
+                
             # we can't print errors from here effectively, so just making
             # part of the auth data be empty will ensure a neg auth.
 
Only in current-devel: auth.py~
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.