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.
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)