[email protected] wrote:
Folks,
For a while, our transport system has not really been adequate to
address all of the goals for the pkg project. The python libraries that
we have been using are capabable for basic functionality, but fall flat
when we try to perform more complicated or performant network
operations.
The following webrev converts our transport from using the
urllib/httplib in python to PyCurl, which is based upon libcurl.
http://cr.opensolaris.org/~johansen/webrev-xport-1/
Comments welcome.
Hi,
If someone else would like to test those bits, the package SUNWcurl is
required to build the gate with the patch from webrev-xport-1.
The progress is moving really nice, but I got a problem installing
packages. I was testing on build 111b.
For SUNWgnome-desklets during download stage after 78.43kB downloaded
I've got the following exception. Please note that exception occurred
and the progress still moved ~1kB. This is happening every time for
every package, so I am unable to perform more tests :(
Exception traceback:
Traceback (most recent call last):
File "/usr/lib/python2.4/vendor-packages/pkg/gui/installupdate.py",
line 406, in __proceed_with_stages_thread_ex
self.__proceed_with_stages_thread()
File "/usr/lib/python2.4/vendor-packages/pkg/gui/installupdate.py",
line 565, in __proceed_with_stages_thread
self.api_o.prepare()
File "/usr/lib/python2.4/vendor-packages/pkg/client/api.py", line 441,
in prepare
self.img.imageplan.preexecute()
File "/usr/lib/python2.4/vendor-packages/pkg/client/imageplan.py",
line 632, in preexecute
p.download()
File "/usr/lib/python2.4/vendor-packages/pkg/client/pkgplan.py", line
244, in download
mfile.wait_files()
File
"/usr/lib/python2.4/vendor-packages/pkg/client/transport/transport.py",
line 801, in wait_files
self._transport._get_files(self)
File
"/usr/lib/python2.4/vendor-packages/pkg/client/transport/transport.py",
line 393, in _get_files
errlist = d.get_files(filelist, download_dir, progtrack)
File
"/usr/lib/python2.4/vendor-packages/pkg/client/transport/repo.py", line
206, in get_files
self._engine.run()
File
"/usr/lib/python2.4/vendor-packages/pkg/client/transport/engine.py",
line 332, in run
self.__call_perform()
File
"/usr/lib/python2.4/vendor-packages/pkg/client/transport/engine.py",
line 98, in __call_perform
ret, active_handles = self.__mhandle.perform()
error: cannot invoke perform() - multi_perform() is currently running
The second time (without restarting GUI, when I was trying to install
the same package, similar exception, but with different stack occured:
Exception traceback:
Traceback (most recent call last):
File "/usr/lib/python2.4/vendor-packages/pkg/gui/installupdate.py",
line 406, in __proceed_with_stages_thread_ex
self.__proceed_with_stages_thread()
File "/usr/lib/python2.4/vendor-packages/pkg/gui/installupdate.py",
line 554, in __proceed_with_stages_thread
stuff_todo = self.__plan_stage()
File "/usr/lib/python2.4/vendor-packages/pkg/gui/installupdate.py",
line 723, in __plan_stage
filters = [])
File "/usr/lib/python2.4/vendor-packages/pkg/client/api.py", line 176,
in plan_install
filters=filters, verbose=verbose)
File "/usr/lib/python2.4/vendor-packages/pkg/client/image.py", line
2609, in make_install_plan
ip.evaluate()
File "/usr/lib/python2.4/vendor-packages/pkg/client/imageplan.py",
line 433, in evaluate
self.evaluate_fmri(f)
File "/usr/lib/python2.4/vendor-packages/pkg/client/imageplan.py",
line 283, in evaluate_fmri
m = self.image.get_manifest(pfmri)
File "/usr/lib/python2.4/vendor-packages/pkg/client/image.py", line
778, in get_manifest
self.__touch_manifest(fmri)
File "/usr/lib/python2.4/vendor-packages/pkg/client/image.py", line
726, in __touch_manifest
self.state.get_intent_str(fmri))
File
"/usr/lib/python2.4/vendor-packages/pkg/client/transport/transport.py",
line 248, in touch_manifest
d.touch_manifest(mfst, header)
File
"/usr/lib/python2.4/vendor-packages/pkg/client/transport/repo.py", line
256, in touch_manifest
respdata = resp.read()
File
"/usr/lib/python2.4/vendor-packages/pkg/client/transport/fileobj.py",
line 69, in read
while self.__fill_buffer():
File
"/usr/lib/python2.4/vendor-packages/pkg/client/transport/fileobj.py",
line 241, in __fill_buffer
engine.run()
File
"/usr/lib/python2.4/vendor-packages/pkg/client/transport/engine.py",
line 332, in run
self.__call_perform()
File
"/usr/lib/python2.4/vendor-packages/pkg/client/transport/engine.py",
line 98, in __call_perform
ret, active_handles = self.__mhandle.perform()
error: cannot invoke perform() - multi_perform() is currently running
The pstack on the packagemanager process during this exception is
showing some thread running:
http://pastebin.com/f3346021a
--
best
Michal Pryc
_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss