Issue Details (XML | Word | Printable)

Key: LIBOMV-823
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Latif Khalifa
Reporter: Kurt Schlager
Votes: 0
Watchers: 0
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: 19/Apr/10 06:51 AM   Updated: 04/May/10 10:49 PM
Component/s: Assets
Affects Version/s: 0.8.0
Fix Version/s: 0.8.1

File Attachments: 1. Text File AssetManager.cs.patch (1 kB)

Issue Links:
Related
 

Severity: High
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   Patches      Sort Order: Ascending order - Click to sort in descending order
Kurt Schlager added a comment - 19/Apr/10 06:53 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)


Kurt Schlager added a comment - 04/May/10 11:05 AM - edited
The problem also occurs in OMV v0.8.0

Patch added as attachment.


Latif Khalifa added a comment - 04/May/10 10:49 PM
Patch applied, thanks!