1 4 1 Issues

From World Wind Wiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 18:22, 26 July 2009 (edit)
Ammianus (Talk | contribs)
(New page: {| class="wikitable" border="1" |- ! ID ! Issue Description (short) ! JIRA id (if applicable) ! Priority (H,M,L) ! Assigned To ! Status ! Fixed in Revision |- | 1 | [[#blocking is...)
← Previous diff
Revision as of 18:43, 26 July 2009 (edit) (undo)
Ammianus (Talk | contribs)

Next diff →
Line 10: Line 10:
|- |-
| 1 | 1
-| [[#blocking issue between Rismo's code and ROL locks]]+| [[#blocking issue between Rismo's code and ROL locks|blocking issue between Rismo's code and ROL locks]]
| - | -
| High | High
Line 18: Line 18:
|- |-
| 2 | 2
-| [[#James' Icon Performance changes]]+| [[#James' Icon Performance changes|James' Icon Performance changes]]
| - | -
| High | High
Line 26: Line 26:
|- |-
| 3 | 3
-| [[#Download code error response handling]]+| [[#Download code error response handling|Download code error response handling]]
| - | -
| High | High
Line 34: Line 34:
|} |}
- +==Detail Issue Notes==
===blocking issue between Rismo's code and ROL locks=== ===blocking issue between Rismo's code and ROL locks===
''Description:'' The issue with Rismo's code is that he had pushed ROL deletes into a list that were then handled on the main (gui) thread. But you need to do this for both adds and deletes because you can end up with blocking for either one. ''Description:'' The issue with Rismo's code is that he had pushed ROL deletes into a list that were then handled on the main (gui) thread. But you need to do this for both adds and deletes because you can end up with blocking for either one.
Line 42: Line 42:
The breakage can be pretty obvious (crash) or somewhat more subtle (ROs don't render or behave right). The breakage can be pretty obvious (crash) or somewhat more subtle (ROs don't render or behave right).
-''Forum Threads:'' +''Forum Threads:''
 +''Comments:''
===James' Icon Performance changes=== ===James' Icon Performance changes===
''Description:'' ''Description:''
- 
''Forum Threads:'' ''Forum Threads:''
- +''Comments:''
===Download code error response handling=== ===Download code error response handling===
''Description:'' ''Description:''
Line 57: Line 57:
http://forum.worldwindcentral.com/showthread.php?t=20337&page=2 http://forum.worldwindcentral.com/showthread.php?t=20337&page=2
http://forum.worldwindcentral.com/showthread.php?t=20700 http://forum.worldwindcentral.com/showthread.php?t=20700
 +http://forum.worldwindcentral.com/showthread.php?t=21085
 +
 +''Comments:''
 +(ammianus) - 7/26/09 - I've made some changes and tested with the help of James_in_Utah. The changes I made include:
 +* 4xx / Client error are cached as failures and WW will not retry to download them during that session (cache is in memory only and cleared when WW is exited).
 +** 400 Bad Request
 +** 401 Unauthorized
 +** 403 Forbidden
 +** 404 Not Found
 +** 206 Partial Content
 +** 200 OK && Content length == 0
 +
 +* 5xx / Server Error are recorded and a timeout period will begin before requests are allowed to this server again. A message is displayed in the top right of the UI stating the timeout length. If server response contains "retry-after" header, that period is used, otherwise default is 2 minutes.
 +** 500 Internal Server Error
 +** 501 Not Implemented
 +** 502 Bad Gateway
 +** 503 Service Unavailable
 +
 +Changes made to source files:
 +*WebDownload/WebDownload.cs
 +*PluginSDK/QuadTileSet.cs
 +*PluginSDK/Renderable/GeoSpatialDownloadRequest.cs
 +See source code svn: https://nasa-exp.svn.sourceforge.net/svnroot/nasa-exp/branches/ammianus

Revision as of 18:43, 26 July 2009

ID Issue Description (short) JIRA id (if applicable) Priority (H,M,L) Assigned To Status Fixed in Revision
1 blocking issue between Rismo's code and ROL locks - High unassigned Still Open -
2 James' Icon Performance changes - High unassigned Still Open -
3 Download code error response handling - High ammianus Fix available -

Contents

Detail Issue Notes

blocking issue between Rismo's code and ROL locks

Description: The issue with Rismo's code is that he had pushed ROL deletes into a list that were then handled on the main (gui) thread. But you need to do this for both adds and deletes because you can end up with blocking for either one.

The problem then was things in WW and plugins assumed that an add or delete happened immediately so you'd end up with breakage because somethings avoided using the getters and setters but hit the ROL array directly. They would do an ROL.add(...) then try to get at those objects immediately and they weren't there. Or they'd do an ROL.remove(...) and maybe do a dispose on it or something else not nice. So when you got around to handling deletes the object was bad or in some not good state.

The breakage can be pretty obvious (crash) or somewhat more subtle (ROs don't render or behave right).

Forum Threads: Comments:

James' Icon Performance changes

Description: Forum Threads: Comments:

Download code error response handling

Description: Download code will download repeatedly request tiles after a error response code from the server, e.g. 400,404. World Wind will also not handle 500 or other server error responses with appropriate time-out behavior.


Forum Threads: http://forum.worldwindcentral.com/showthread.php?t=8207 http://forum.worldwindcentral.com/showthread.php?t=20337&page=2 http://forum.worldwindcentral.com/showthread.php?t=20700 http://forum.worldwindcentral.com/showthread.php?t=21085

Comments: (ammianus) - 7/26/09 - I've made some changes and tested with the help of James_in_Utah. The changes I made include:

  • 4xx / Client error are cached as failures and WW will not retry to download them during that session (cache is in memory only and cleared when WW is exited).
    • 400 Bad Request
    • 401 Unauthorized
    • 403 Forbidden
    • 404 Not Found
    • 206 Partial Content
    • 200 OK && Content length == 0
  • 5xx / Server Error are recorded and a timeout period will begin before requests are allowed to this server again. A message is displayed in the top right of the UI stating the timeout length. If server response contains "retry-after" header, that period is used, otherwise default is 2 minutes.
    • 500 Internal Server Error
    • 501 Not Implemented
    • 502 Bad Gateway
    • 503 Service Unavailable

Changes made to source files:

  • WebDownload/WebDownload.cs
  • PluginSDK/QuadTileSet.cs
  • PluginSDK/Renderable/GeoSpatialDownloadRequest.cs

See source code svn: https://nasa-exp.svn.sourceforge.net/svnroot/nasa-exp/branches/ammianus

Personal tools