offline sync issue

Matt Vanderveer's Avatar

Matt Vanderveer

21 Jan, 2020 10:31 PM

Hi,

I'm running the latest stable version (4155 dated 1/3/20) on Win10 enterprise and having sync issues. Once I click sync account, the browser just sits waiting on localhost. I've tried dropping the firewall and that did not make a difference. I let it run for a good long while and then ended up killing the running offline instance. When I started it back up, it was synced. The command window is showing java errors:

C:\sartopo>java -Dsarsoft.properties=sar.properties -Dsarsoft.version="SARTopo Offline" -Xmx1024m -jar sar.jar --debug=1
Welcome to SARTopo Offline version 4155, 01/03/20 19:33:11
License Key 18395-2KBH90 expires on 05/12/2020
Temp data unpacked to C:\Users\mwv6n\AppData\Local\Temp\winstoneEmbeddedWAR

Server Addresses:
  http://localhost:8080/
  http://eris-win10:8080/
WARN - Request method 'GET' not supported
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by net.sf.ehcache.pool.sizeof.ObjectGraphWalker (file:/C:/Users/mwv6n/AppData/Local/Temp/winstoneEmbeddedWAR/WEB-INF/lib/ehcache-core-2.6.6.jar) to field java.lang.String.value
WARNING: Please consider reporting this to the maintainers of net.sf.ehcache.pool.sizeof.ObjectGraphWalker
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
RequestPropertyFilter handling uncaught exception:
java.net.SocketException: An established connection was aborted by the software in your host machine
        at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:421)
        at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:441)
        at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:825)
        at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1007)
        at java.base/java.io.OutputStream.write(OutputStream.java:122)
        at winstone.WinstoneOutputStream.commit(WinstoneOutputStream.java:123)
        at winstone.WinstoneOutputStream.write(WinstoneOutputStream.java:104)
        at java.base/java.io.OutputStream.write(OutputStream.java:157)
        at org.springframework.util.StreamUtils.copy(StreamUtils.java:125)
        at org.springframework.web.servlet.resource.ResourceHttpRequestHandler.writeContent(ResourceHttpRequestHandler.java:254)
        at org.springframework.web.servlet.resource.ResourceHttpRequestHandler.handleRequest(ResourceHttpRequestHandler.java:153)
        at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:49)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:919)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:851)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:953)
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:844)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:104)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:829)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
        at winstone.ServletConfiguration.execute(ServletConfiguration.java:249)
        at winstone.RequestDispatcher.forward(RequestDispatcher.java:335)
        at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:378)
        at org.sarsoft.common.request.RequestPropertyFilter.doFilter(RequestPropertyFilter.java:69)
        at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
        at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
        at org.sarsoft.compatibility.SQLiteDBSpringSessionFilter.doFilter(SQLiteDBSpringSessionFilter.java:27)
        at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
        at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
        at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
        at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:244)
        at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150)
        at java.base/java.lang.Thread.run(Thread.java:830)

Let me know if you need more info.
Thanks,
Matt

  1. Support Staff 1 Posted by Ben Lantow on 21 Jan, 2020 10:33 PM

    Ben Lantow's Avatar

    What e-mail address and login provider do you use?

    Thanks for the in depth debugging I'll kick this to a developer to look at.

    Best,
    Ben

  2. 2 Posted by Matt Vanderveer on 21 Jan, 2020 10:38 PM

    Matt Vanderveer's Avatar

    This email address and Google.

    As an aside, is there an easy way to download a layer for an entire state?
    Since we respond over the entire state, I'm hoping there's an easier way to
    pull the necessary layers for the entire state at once as opposed to
    clicking on each tile in the state.

    Thanks,
    --
    Matt Vanderveer
    K9 Alert SAR Dogs Inc.

  3. Support Staff 3 Posted by Ben Lantow on 21 Jan, 2020 10:46 PM

    Ben Lantow's Avatar

    Ok thanks. And intentionally no, there are data transfer implications for us if we make it insanely easy to download huge areas so unfortunately you do have to select each tile.

    Best,
    Ben

  4. Ben Lantow closed this discussion on 21 Jan, 2020 10:46 PM.

  5. Ben Lantow re-opened this discussion on 21 Jan, 2020 10:46 PM

  6. Support Staff 4 Posted by matt on 22 Jan, 2020 05:28 PM

    matt's Avatar

    Sorry for the confusion, there's a per-download limit of 20GB, so you can't do the entire state in one pass, but you can shift-click to select blocks of tiles without needing to click individual tiles one-by-one.

    I know you said it happens after clicking sync account, but are you able to confirm which localhost URL it was stalled on? Was it http://localhost:8080/client/finish-activate, which comes up after clicking "sync account", or http://localhost:8080/map.html, which comes up after clicking "start mapping"?

    Also, did that Java error happen when waiting for the sync to happen, when killing the offline instance, or when starting it back up after killing it?

  7. 5 Posted by Matt Vanderveer on 23 Jan, 2020 08:01 PM

    Matt Vanderveer's Avatar

    The first error about illegal reflective access comes up as soon as I load
    http://localhost:80080/map.html in a browser. This happens every time,
    regardless of which browser I use. The rest of the errors are generated
    when I click Offline User to sync the account, but so far only when using
    Firefox. I blew away the install to run through it again so I could
    confirm where the errors were generated. The original install sync stalled
    on
    https://sartopo.com/app/activate/offline?redirect=http%3A%2F%2Flocalhost%3A8080&name=eris-win10
    and never got to the finish activate page. I've run through the sync 3
    more times on fresh installs on this machine and both completed as expected
    (aside from the errors in the command window). The initial sync was done
    using the latest Firefox and I had the sync issue. The next two times I
    did the sync from a clean install using Firefox, they succeeded but FF only
    offered me login via Google. The third time I used Brave and had no
    issues. This makes we wonder if this issue is mostly FF related,
    especially since going to http://localhost:8080 in FF does not redirect to
    map.html (in FF I have to type http://localhost:8080/map.html to get it to
    load) whereas I do not see this problem in Brave.

    Let me know if you need more info or would like me to do further testing. I
    can also test on Win10 Pro, Win10 Home, MacOS Mojave (for a bit longer),
    and MacOS Catalina (and RHEL/CentOS 7 & 8 if you need Linux testing)
    between home and work.

    As for downloading the layers, do you have any preference or recommendation
    for downloading an entire state? In the past, I would do an initial
    download all of the layers for Virginia to a flash drive, and then use that
    to load them on our laptops. At the beginning of the next year, I would
    check for any updated or new layers and only download what was updated or
    new. I'm looking for the most efficient way to get all of the layers for
    VA on our group laptops while minimizing the hit to your bandwidth and
    hosting. Note that I'm doing this via our team account. After downloading
    the layers I need in the desktop app, can I just copy the files from the
    install directory to a flash drive and then copy them into place on the
    other computers?

    Thanks,

    Matt

  8. Support Staff 6 Posted by matt on 27 Jan, 2020 07:03 PM

    matt's Avatar
    • You can ignore the "reflective access" error, it's a Java warning related to upcoming changes to Java and a library CalTopo is using that will be incompatible with those changes.

    • Yes, you can copy all of the mbtiles files in the data/tiles directory between machines, rather than re-downloading on each machine. The only offline layer that really gets updated is the MapBuilder set, which occasionally gets updated with new OSM data (more frequently for online, less frequently for the offline downloads). Current new layer is the high-res DEM data, coming for offline download at some point in 2020 will be MVUM motor vehicle use maps (possibly not relevant for you), updated aerial imagery, and parcel data.

    • If you have a last-used login provider, that's shown as the only option with a link to expand the list and show all providers, same as the login process on the website.

    On the sync issues, are you able to re-try with the original setup to determine if it's still reproducible and not just a one-off error?

    It might not be related, but I'd like to get more info from you on Firefox not redirecting from localhost:8080 to localhost:8080/map.html - it redirects fine for me when I test things. The sync process does rely on redirecting your browser, so there might be some connection there.

  9. 7 Posted by Matt Vanderveer on 27 Jan, 2020 10:14 PM

    Matt Vanderveer's Avatar

    I saw the sync and redirect issues with FF on 2 different computers, but
    neither is exhibiting the issue now, even after doing a clean install of
    offline and clearing the cache in the browser. In both cases the browser
    was refusing to redirect but as of yesterday I'm not seeing the issue on
    either one. It's not an extension issue as the one browser does not have
    any installed. I thought maybe the FF enhanced traffic protection was the
    cause, but I still saw the issue regardless of if it was on or not. The
    only other thing I can think of is that FF did update since my last report,
    so maybe that's what resolved it? At any rate, I'm no longer seeing it
    with FF on either machine whereas before it was consistent.

    Thanks,

    Matt

  10. Support Staff 8 Posted by Ben Lantow on 28 Jan, 2020 08:04 PM

    Ben Lantow's Avatar

    I ended up hearing from another user who had a brief period of time where they weren't able to sync on firefox that has since resolved. I don't know what happened here but it sounds like you're back up and running. So sorry for the hiccups. Let me know if you need further support, happy to help!

  11. Ben Lantow closed this discussion on 28 Jan, 2020 08:04 PM.

Comments are currently closed for this discussion. You can start a new one.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac