[oi-dev] pkg: internal error

Andreas Stenius andreas.stenius at astekk.se
Wed May 9 08:14:47 UTC 2012


OK, I said I wasn't going to dig into the source, but since I found
such an easy and specific fix, I had a go with it... and it WORKS! yay
:)

root at ganesha:/usr/lib/python2.6/vendor-packages/pkg/client/transport#
pkg history
START                    OPERATION                CLIENT             OUTCOME
[...]
2012-04-13T21:11:48      refresh-publishers       pkg                Succeeded
2012-04-13T21:11:48      install                  pkg                Succeeded
2012-04-13T21:11:49      rebuild-image-catalogs   pkg                Succeeded
2012-04-13T21:16:25      install                  pkg                Succeeded
...
2012-04-16T20:19:17      install                  pkg                Succeeded
2012-05-08T16:55:00      refresh-publishers       pkg                Failed
2012-05-08T16:55:26      refresh-publishers       pkg                Failed
2012-05-08T18:52:36      refresh-publishers       pkg                Failed
2012-05-08T20:12:58      refresh-publishers       pkg                Failed
2012-05-09T09:33:31      refresh-publishers       pkg                Failed
2012-05-09T09:50:55      refresh-publishers       pkg                Failed
2012-05-09T10:09:20      refresh-publishers       pkg
Succeeded         # applied patch to engine.py (see below)
2012-05-09T10:09:38      rebuild-image-catalogs   pkg                Succeeded
root at ganesha:/usr/lib/python2.6/vendor-packages/pkg/client/transport#

Here's the diff:

root at ganesha:/usr/lib/python2.6/vendor-packages/pkg/client/transport#
diff engine.py.org engine.py
779c779
<                 hdl.setopt(pycurl.URL, treq.url)
---
>                 hdl.setopt(pycurl.URL, str(treq.url))

As noted, this may be an ugly work-around and perhaps not suitable for
a long term solution, but for me as end-user... whatever makes it work
is worth it.

//Andreas

2012/5/9 Andreas Stenius <andreas.stenius at astekk.se>:
> Found some more on this:
> http://defect.opensolaris.org/bz/show_bug.cgi?id=13334
> and, http://sourceforge.net/tracker/?func=detail&aid=1831680&group_id=28236&atid=392777
>
> Since there seems to be an easy work-around (by wrapping the passed
> url with a str() call), I'll have a go with that.
> (I do have the _speedups.so in the simplejson vendor package for python 2.6).
>
> Perhaps this should've been on the oi-dev list? adding it to cc.
>
> 2012/5/9 Andreas Stenius <andreas.stenius at astekk.se>:
>> A somewhat dated report, in a completely different environment, but
>> still seems to strike some similarities that look right:
>> http://java.net/jira/browse/UPDATECENTER2-1697?focusedCommentId=62748&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_62748
>>
>> I'll try and re-set my publisher list and see if it makes a
>> difference... as I'm not about to dig through pkg or pycurl sources at
>> this time.
>>
>> //Andreas
>>
>> 2012/5/8 Andreas Stenius <andreas.stenius at astekk.se>:
>>> Hi,
>>>
>>> It's been a few weeks since I used pkg on this box, but it worked last
>>> time I used it.
>>>
>>> Now, all I get is some internal error. Any ideas what may be wrong
>>> (and preferably, what to do about it)?
>>>
>>>
>>> kaos at ganesha:~$ sudo pkg refresh
>>> Password:
>>> Refreshing catalog 1/3 openindiana.orgTraceback (most recent call last):
>>>  File "/bin/pkg", line 5954, in handle_errors
>>>    __ret = func(*args, **kwargs)
>>>  File "/bin/pkg", line 5932, in main_func
>>>    return func(api_inst, pargs)
>>>  File "/bin/pkg", line 3757, in publisher_refresh
>>>    return __refresh(api_inst, pargs, full_refresh=full_refresh)
>>>  File "/bin/pkg", line 3729, in __refresh
>>>    immediate=True, pubs=pubs)
>>>  File "/usr/lib/python2.6/vendor-packages/pkg/client/api.py", line
>>> 2319, in refresh
>>>    pubs=pubs, immediate=immediate)
>>>  File "/usr/lib/python2.6/vendor-packages/pkg/client/api.py", line
>>> 2343, in __refresh
>>>    progtrack=self.__progresstracker)
>>>  File "/usr/lib/python2.6/vendor-packages/pkg/client/image.py", line
>>> 3196, in refresh_publishers
>>>    immediate=immediate):
>>>  File "/usr/lib/python2.6/vendor-packages/pkg/client/publisher.py",
>>> line 1860, in refresh
>>>    return self.__refresh(True, True)
>>>  File "/usr/lib/python2.6/vendor-packages/pkg/client/publisher.py",
>>> line 1796, in __refresh
>>>    full_refresh, immediate, mismatched, origin)
>>>  File "/usr/lib/python2.6/vendor-packages/pkg/client/publisher.py",
>>> line 1751, in __refresh_origin
>>>    full_refresh, immediate, mismatched, repo)
>>>  File "/usr/lib/python2.6/vendor-packages/pkg/client/publisher.py",
>>> line 1670, in __refresh_v1
>>>    revalidate=revalidate, alt_repo=repo)
>>>  File "/usr/lib/python2.6/vendor-packages/pkg/client/transport/transport.py",
>>> line 432, in wrapper
>>>    return f(instance, *fargs, **f_kwargs)
>>>  File "/usr/lib/python2.6/vendor-packages/pkg/client/transport/transport.py",
>>> line 815, in get_catalog1
>>>    revalidate=revalidate)
>>>  File "/usr/lib/python2.6/vendor-packages/pkg/client/transport/repo.py",
>>> line 453, in get_catalog1
>>>    self._engine.run()
>>>  File "/usr/lib/python2.6/vendor-packages/pkg/client/transport/engine.py",
>>> line 573, in run
>>>    self.__setup_handle(eh, t)
>>>  File "/usr/lib/python2.6/vendor-packages/pkg/client/transport/engine.py",
>>> line 779, in __setup_handle
>>>    hdl.setopt(pycurl.URL, treq.url)
>>> TypeError: invalid arguments to setopt
>>>
>>>
>>> pkg: This is an internal error in pkg(5) version 5d2771134f21+.  Please log a
>>> Service Request about this issue including the information above and this
>>> message.
>>>
>>> kaos at ganesha:~$ uname -a
>>> SunOS ganesha 5.11 oi_151a3 i86pc i386 i86pc Solaris
>>>
>>>
>>> Thanks in advance,
>>> Andreas




More information about the oi-dev mailing list