Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JOSM freeze #5

Open
ghost opened this issue Aug 23, 2015 · 12 comments
Open

JOSM freeze #5

ghost opened this issue Aug 23, 2015 · 12 comments
Assignees

Comments

@ghost
Copy link

ghost commented Aug 23, 2015

JOSM's interface freezes in a particular area when I pan around with OpenGL enabled.
I reproduced it reliably in that area, but was not able to do it in other areas. The bbox of the downloaded area: map?bbox=3.1323534,51.3127496,3.1334558,51.3135024

Steps to reproduce:

  1. Open JOSM with the OpenGL plug-in enabled
  2. Download bbox 3.1323534,51.3127496,3.1334558,51.3135024
  3. Enable OpenGL with the button in the toolbar
  4. Pan around a bit
  5. Watch how JOSM freezes. On my computer this happened the second time I panned.

JOSM also opened an error once to say it had run out of memory, and it crashed after that.

I can also send you a log of the stdout and stderr if that can help.

Platform: Linux 3.13.0-62-generic, 64 bit

@michaelzangl
Copy link
Owner

Hi
Thanks for testing and for the detailed report.

I attempted to reproduce that problem but for me, that area works. I would be interested in knowing where JOSM freezed.

A log of stdout would be really appreciated (the last 30 lines are enough). If you have the Java JDK, there is a tool called "VisulaVM". (in /bin/jvisualvm) With it, you can create stack traces of running programs. Such a stack trace contains the location in the code where JOSM is currently freezing.

@ghost
Copy link
Author

ghost commented Aug 23, 2015

Full thread dump and VisualVM snapshot sent.

@michaelzangl
Copy link
Owner

Thanks. I stored both files.

According to the log, the tessellator seems to be still running in jogamp.opengl.glu.tessellator.Mesh.MakeFace(Mesh.java:196). Normally, this method should be pretty fast. I'll look into it tomorrow.

@michaelzangl michaelzangl self-assigned this Aug 23, 2015
@ghost
Copy link
Author

ghost commented Aug 23, 2015

Thanks for your quick reply, and good luck with your project!

@ghost
Copy link
Author

ghost commented Aug 23, 2015

Oh, I forgot, here are the last lines of stdout before I hit ^C. If you need anything else or want me to test a new version, just shout. :)

Map viewport changed.
Regenerated 0 merge groups for 0 primitives
Received 93 geometries from cache and 0 generated this frame.
STYLE GEN in getDrawGeometries()1
SORTING in getDrawGeometries(): 1
Map viewport changed.
Create styles: 2ms, draw: 2ms, draw virtual: 0ms; total: 4ms
   drawMode = 07, draws: 00031, short: 00028
   drawMode = 06, draws: 00199, short: 00016
   drawMode = 05, draws: 00250, short: 00002
   drawMode = 04, draws: 00279, short: 00007
   drawMode = 03, draws: 00014, short: 00010
   drawMode = 02, draws: 00247, short: 00043
   drawMode = 01, draws: 00039, short: 00004
   color changes: 223
Regenerated 0 merge groups for 0 primitives
Received 93 geometries from cache and 0 generated this frame.
STYLE GEN in getDrawGeometries()1
SORTING in getDrawGeometries(): 0
Create styles: 1ms, draw: 2ms, draw virtual: 0ms; total: 3ms
   drawMode = 07, draws: 00031, short: 00028
   drawMode = 06, draws: 00199, short: 00016
   drawMode = 05, draws: 00250, short: 00002
   drawMode = 04, draws: 00279, short: 00007
   drawMode = 03, draws: 00014, short: 00010
   drawMode = 02, draws: 00247, short: 00043
   drawMode = 01, draws: 00039, short: 00004
   color changes: 223
Regenerated 0 merge groups for 0 primitives
Received 93 geometries from cache and 0 generated this frame.
STYLE GEN in getDrawGeometries()1
SORTING in getDrawGeometries(): 0
Create styles: 1ms, draw: 2ms, draw virtual: 0ms; total: 3ms
   drawMode = 07, draws: 00031, short: 00028
   drawMode = 06, draws: 00199, short: 00016
   drawMode = 05, draws: 00250, short: 00002
   drawMode = 04, draws: 00279, short: 00007
   drawMode = 03, draws: 00014, short: 00010
   drawMode = 02, draws: 00247, short: 00043
   drawMode = 01, draws: 00039, short: 00004
   color changes: 223
Map viewport changed.
Regenerated 0 merge groups for 0 primitives
Received 93 geometries from cache and 0 generated this frame.
STYLE GEN in getDrawGeometries()1
SORTING in getDrawGeometries(): 0
Create styles: 1ms, draw: 3ms, draw virtual: 0ms; total: 4ms
   drawMode = 07, draws: 00031, short: 00028
   drawMode = 06, draws: 00199, short: 00016
   drawMode = 05, draws: 00250, short: 00002
   drawMode = 04, draws: 00279, short: 00007
   drawMode = 03, draws: 00014, short: 00010
   drawMode = 02, draws: 00247, short: 00043
   drawMode = 01, draws: 00039, short: 00004
   color changes: 223
Regenerated 0 merge groups for 0 primitives

@xmd5a2
Copy link

xmd5a2 commented Sep 8, 2015

Not sure if my situation is related to this bug. I have instant freeze of map window after switching plugin on. UI redraws only after moving mouse pointer over buttons.
Platform: Linux 3.16.0-38-generic x86_64 (64 bit)
GLX Renderer: GeForce GTX 960/PCIe/SSE2 GLX Version: 4.5.0 NVIDIA 355.06
libEGL warning: DRI2: failed to authenticate
Setting paint mode: OPENGL
java.lang.NoSuchMethodError: javax.media.opengl.GLAutoDrawable.getSurfaceWidth()I
at org.openstreetmap.josm.gsoc2015.opengl.jogl.GLDrawer.display(GLDrawer.java:73)
at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:649)
at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:633)
at javax.media.opengl.awt.GLJPanel$Updater.display(GLJPanel.java:1193)
at javax.media.opengl.awt.GLJPanel$7.run(GLJPanel.java:1249)
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1103)
at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:978)
at javax.media.opengl.awt.GLJPanel$OffscreenBackend.doPaintComponent(GLJPanel.java:1714)
at javax.media.opengl.awt.GLJPanel.paintComponent(GLJPanel.java:526)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5227)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1529)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1452)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:311)
at javax.swing.RepaintManager.paint(RepaintManager.java:1249)
at javax.swing.JComponent.paint(JComponent.java:1032)
at org.openstreetmap.josm.gsoc2015.opengl.OpenGLMapView.paintChildren(OpenGLMapView.java:120)
at javax.swing.JComponent.paint(JComponent.java:1055)
at javax.swing.JComponent.paintChildren(JComponent.java:879)
at javax.swing.JComponent.paint(JComponent.java:1055)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5223)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:295)
at javax.swing.RepaintManager.paint(RepaintManager.java:1249)
at javax.swing.JComponent._paintImmediately(JComponent.java:5171)
at javax.swing.JComponent.paintImmediately(JComponent.java:4982)
at javax.swing.RepaintManager$3.run(RepaintManager.java:808)
at javax.swing.RepaintManager$3.run(RepaintManager.java:796)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:796)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:769)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:718)
at javax.swing.RepaintManager.access$1100(RepaintManager.java:62)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1677)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:745)
at java.awt.EventQueue.access$300(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:706)
at java.awt.EventQueue$3.run(EventQueue.java:704)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:715)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

@michaelzangl
Copy link
Owner

@xmd5a2
You issue is not related to this. It seems like you have the wrong Version of JOGL loaded. Do you have other plugins that use OpenGL or did you install JOGL system-wide?

@xmd5a2
Copy link

xmd5a2 commented Sep 8, 2015

@michaelzangl I use kendzi3d - it works. I followed instructions here https://github.com/michaelzangl/josm-plugin-opengl/releases
I have JOSM 8714
How can I install JOGL system-wide?

@michaelzangl
Copy link
Owner

You should not install it system wide (it will break most apps using jogl). The problem is that there is a conflict with kendzi3d: That plugin loads the old version of JOGL, my plugin requires the new version but cannot load it since JOGL is already loaded. Both versions are incompatible and thus the plugins won't work at the same time.

@xmd5a2
Copy link

xmd5a2 commented Sep 8, 2015

@michaelzangl Thanks! Finally it works (and very fast!). I think this info should be in release notes because kendzi3d is popular.
PS. crashes after using tab.

@don-vip
Copy link

don-vip commented Sep 8, 2015

Hi,
@michaelzangl: Can you please see with @kendzi how's the best way to deal with this issue? We don't let plugins conflict each other. Either one of them depends on the other, or a third plugin is created to embed the conflicting library. Thanks.

@michaelzangl
Copy link
Owner

@don-vip already looking into it. Basically there are just a few method names that have changed in those JOGL versions.

Discussion continues here: kendzi/josm-jogl#1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants