Issue Details (XML | Word | Printable)

Key: LIBOMV-184
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: John Hurliman
Reporter: Toby Gray
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
libopenmetaverse

First "single packet" asset upload blocks all subsequent asset uploads

Created: 04/May/08 10:30 AM   Updated: 19/Apr/10 06:52 AM
Component/s: Assets
Affects Version/s: 0.4.0
Fix Version/s: 0.6.1

Issue Links:
Related
 

Environment: All


 Description  « Hide
After successfully uploading an asset as a single packet, any subsequent attempt to upload an asset results in an exception with the message "Timeout waiting for previous asset upload to begin" (thrown from line 652 of AssetManager.cs).
After delving (admittedly shallowly) into the libsecondlife source, it looks to me like the basic problem is that a single packet upload never Sets PendingUploadEvent, presumably because no request xfer packet is ever received for such an upload.
            • ADDITIONAL INFORMATION ******

I was thinking that something along the lines of
if (upload.Transferred == upload.Size)
PendingUploadEvent.Set();
immediately following the SendPacket line in RequestUpload (line 647) might do the trick, but then I remembered that there is another side-effect to this general issue, and that is the fact that single packet uploads never fire an AssetUploaded event. With my limited knowledge of libsecondlife, I'm not confident to suggest a better/more general fix for this issue.



 All   Comments   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
John Hurliman added a comment - 21/Jul/08 01:53 AM
Looks like the method used for synchronizing multiple uploads was just plain broken. I swapped it out in r1941 for a new sync mechanism that should work, please test it out.

As far as OnAssetUploaded not being fired, check if that is still an issue. If it is, there should at least be a warning message printing out now that you can paste here.


John Hurliman added a comment - 17/Feb/09 10:42 AM
Haven't heard anything on this in a while so I'm marking it as fixed. If it's still an issue please reopen the bug.

Kurt Schlager added a comment - 19/Apr/10 06:47 AM
Uploading subsequent landmark assets results in the following:
on OMV v0.7.0

226375 [2840] INFO - <Lang Kegel>: Beginning asset upload [Single Packet], ID: 3fded904-6132-4010-91f6-a2271a9377f4, AssetID: 49e0d40a-38d9-49da-ad79-1a8fe6243043, Size: 96
237062 [2840] INFO - <Lang Kegel>: Beginning asset upload [Single Packet], ID: 582852df-cd09-41b7-b514-9e79626d4435, AssetID: c7438ee0-920e-ee34-30e8-80915bb09285, Size: 96
Timeout waiting for previous asset upload to begin
at OpenMetaverse.AssetManager.RequestUpload(UUID& assetID, AssetType type, Byte[] data, Boolean storeLocal, UUID transactionID)
at OpenMetaverse.AssetManager.RequestUpload(UUID& assetID, AssetType type, Byte[] data, Boolean storeLocal)
at OpenMetaverse.AssetManager.RequestUpload(Asset asset, Boolean storeLocal)
358312 [4276] INFO - <Lang Kegel>: Beginning asset upload [Single Packet], ID: e868d2f0-56cc-4140-b534-4f38a391ac86, AssetID: fdc21268-fed8-e8a4-20d3-17a4ff31d89a, Size: 96
Timeout waiting for previous asset upload to begin
at OpenMetaverse.AssetManager.RequestUpload(UUID& assetID, AssetType type, Byte[] data, Boolean storeLocal, UUID transactionID)
at OpenMetaverse.AssetManager.RequestUpload(UUID& assetID, AssetType type, Byte[] data, Boolean storeLocal)
at OpenMetaverse.AssetManager.RequestUpload(Asset asset, Boolean storeLocal)