Re: System specific issues with FIJI

Posted by Mark Hiner on
URL: http://imagej.273.s1.nabble.com/System-specific-issues-with-FIJI-tp5011752p5011755.html

Hi Benoit,

 >I have read through the fiji debug page but am not sure what to do, let
say, after starting FIJI in debug mode

The general goal of the debug options (whether launching in debug mode,
launching from the command line or turning Edit>Options>Misc...>Debug mode
on) is to expose additional information that may normally be hidden or lost
- e.g. because of suppression of logging output, or missing error messages
(perhaps because they caused the application to crash before any logging
could occur).

So the typical workflow with these settings would be something like:
Something terrible happens but I don't know what > restart Fiji in debug
mode > repeat action that caused terrible thing > observe new information
(hopefully)

>Error message of case 1:
> ...

In this case you already have the error message, so just capturing extra
debugging information may not be helpful.

But you can learn something from the messages - since you got an out of
memory exception with a small dataset and reasonable memory settings, and I
noticed that the stack trace is full new thread instantiation all coming
from the same origin (MinMax computation) it would be reasonable to suspect
a memory leak due to a multi-threading error.

At this point you've identified the area of the problem (the
DefaultMinMaxMethod) and we would need to investigate what the code is
actually doing, e.g. via remote debugging[1]. So that would be the next
thing for you to either try yourself, or submit a bug report.

>2 - I have another issue with saving overlay in tiff image with Fiji.
>Any idea of what could be the issue?

Hard to say, but when I have a use case that works in one environment but
not another, the first things I always check are:
1) the state of plugins/update sites (e.g. that reported by Plugins > Debug
> System information, or Help > Report a Bug)
2) the java version

Note that the Java version could also be a factor in your first problem
since you're going from Mavericks to Yosemite (the latter defaulting to
Java 8) so you may want to experiment with different Java versions[2] in
both cases.

Anyway I hope this clarifies things a bit and gives you some direction. Let
me know if any of this is unclear. Also, it's great that you started with
the wiki, and any feedback to improve the Debugging Intro page[3] would
certainly be welcome (e.g. would it help if the sections were more
step-by-step, or if we added a higher-level "philosophy of debugging"
intro, or revised individual sections to be more explicit about how that
particular technique should be used...?).

Best,
Mark

[1] http://imagej.net/Debugging_intro#Attaching_to_ImageJ_instances
[2]
http://imagej.net/FAQ#How_do_I_launch_ImageJ_with_a_different_version_of_Java.3F
[3] http://imagej.net/Debugging_intro


On Tue, Feb 24, 2015 at 9:13 AM, Benoit Lombardot <[hidden email]>
wrote:

> Dear IJ users,
>
> I am bumping in little  issues with FIJI. I have some issue occuring on
> one system but not on another with the same FIJI installation. That would
> be great if anyone had advise to get me started with that debugging. I have
> read through the fiji debug page but am not sure what to do, let say, after
> starting FIJI in debug mode. For now,  I am a bit stuck, but willing to
> learn.
>
> Below is a description of the 2 (independent) issues I have met. It is a
> quite general description but just let me know what additional information
> could be needed here.
>
> 1 - One plugin I wrote works on a mac with mac os 10.9.3 (it also works
> with win7, ubuntu and centos systems) but crashes on a mac os 10.10.1
> throwing an out of memory error (despite a small dataset, proper physical
> memory and adequate memory settings in FIJI). It is not clear to me where
> the error is happening as it does not refer explicitly to the function of
> the plugin. I added the error message below.
>
> 2 - I have another issue with saving overlay in tiff image with Fiji. It
> works fine on my laptop (a mac with osx 10.9.3) but does not save the
> overlay on my user laptop ( a mac with osx 10.9.5) and does not output
> errors. I copied his Fiji installation on my laptop and the the overlay is
> saved properly on my machine. Any idea of what could be the issue?
>
> For the 2 cases I used FIJI (IJ 2.0.0-rc-24 / IJ 1.49m)
>
> Thanks for your help,
> Best,
>
> Benoit
>
>
>
> Error message of case 1:
> Exception in thread "SciJava-111bda67-Thread-2203"
> java.lang.OutOfMemoryError: unable to create new native thread
> at java.lang.Thread.start0(Native Method)
> at java.lang.Thread.start(Thread.java:673)
> at java.util.concurrent.ThreadPoolExecutor.addThread(
> ThreadPoolExecutor.java:681)
> at java.util.concurrent.ThreadPoolExecutor.addIfUnderMaximumPoolSize(
> ThreadPoolExecutor.java:727)
> at java.util.concurrent.ThreadPoolExecutor.execute(
> ThreadPoolExecutor.java:655)
> at java.util.concurrent.AbstractExecutorService.submit(
> AbstractExecutorService.java:78)
> at org.scijava.thread.DefaultThreadService.run(
> DefaultThreadService.java:80)
> at org.scijava.event.DefaultEventBus.publishLater(
> DefaultEventBus.java:217)
> at org.scijava.event.DefaultEventBus.publishLater(
> DefaultEventBus.java:105)
> at org.scijava.event.DefaultEventService.publishLater(
> DefaultEventService.java:111)
> at org.scijava.app.DefaultStatusService.publish(
> DefaultStatusService.java:112)
> at org.scijava.app.DefaultStatusService.showStatus(
> DefaultStatusService.java:73)
> at net.imagej.minmax.DefaultMinMaxMethod.report(
> DefaultMinMaxMethod.java:301)
> at net.imagej.minmax.DefaultMinMaxMethod.compute(
> DefaultMinMaxMethod.java:234)
> at net.imagej.minmax.DefaultMinMaxMethod$1.run(
> DefaultMinMaxMethod.java:180)
> at java.lang.Thread.run(Thread.java:695)
> Exception in thread "SciJava-111bda67-Thread-2199"
> java.lang.OutOfMemoryError: unable to create new native thread
> at java.lang.Thread.start0(Native Method)
> at java.lang.Thread.start(Thread.java:673)
> at java.util.concurrent.ThreadPoolExecutor.addThread(
> ThreadPoolExecutor.java:681)
> at java.util.concurrent.ThreadPoolExecutor.addIfUnderMaximumPoolSize(
> ThreadPoolExecutor.java:727)
> at java.util.concurrent.ThreadPoolExecutor.execute(
> ThreadPoolExecutor.java:655)
> at java.util.concurrent.AbstractExecutorService.submit(
> AbstractExecutorService.java:78)
> at org.scijava.thread.DefaultThreadService.run(
> DefaultThreadService.java:80)
> at org.scijava.event.DefaultEventBus.publishLater(
> DefaultEventBus.java:217)
> at org.scijava.event.DefaultEventBus.publishLater(
> DefaultEventBus.java:105)
> at org.scijava.event.DefaultEventService.publishLater(
> DefaultEventService.java:111)
> at org.scijava.app.DefaultStatusService.publish(
> DefaultStatusService.java:112)
> at org.scijava.app.DefaultStatusService.showStatus(
> DefaultStatusService.java:73)
> at net.imagej.minmax.DefaultMinMaxMethod.report(
> DefaultMinMaxMethod.java:301)
> at net.imagej.minmax.DefaultMinMaxMethod.compute(
> DefaultMinMaxMethod.java:234)
> at net.imagej.minmax.DefaultMinMaxMethod$1.run(
> DefaultMinMaxMethod.java:180)
> at java.lang.Thread.run(Thread.java:695)
> Exception in thread "SciJava-111bda67-Thread-2201"
> java.lang.OutOfMemoryError: unable to create new native thread
> at java.lang.Thread.start0(Native Method)
> at java.lang.Thread.start(Thread.java:673)
> at java.util.concurrent.ThreadPoolExecutor.addThread(
> ThreadPoolExecutor.java:681)
> at java.util.concurrent.ThreadPoolExecutor.addIfUnderMaximumPoolSize(
> ThreadPoolExecutor.java:727)
> at java.util.concurrent.ThreadPoolExecutor.execute(
> ThreadPoolExecutor.java:655)
> at java.util.concurrent.AbstractExecutorService.submit(
> AbstractExecutorService.java:78)
> at org.scijava.thread.DefaultThreadService.run(
> DefaultThreadService.java:80)
> at org.scijava.event.DefaultEventBus.publishLater(
> DefaultEventBus.java:217)
> at org.scijava.event.DefaultEventBus.publishLater(
> DefaultEventBus.java:105)
> at org.scijava.event.DefaultEventService.publishLater(
> DefaultEventService.java:111)
> at org.scijava.app.DefaultStatusService.publish(
> DefaultStatusService.java:112)
> at org.scijava.app.DefaultStatusService.showStatus(
> DefaultStatusService.java:73)
> at net.imagej.minmax.DefaultMinMaxMethod.report(
> DefaultMinMaxMethod.java:301)
> at net.imagej.minmax.DefaultMinMaxMethod.compute(
> DefaultMinMaxMethod.java:234)
> at net.imagej.minmax.DefaultMinMaxMethod$1.run(
> DefaultMinMaxMethod.java:180)
> at java.lang.Thread.run(Thread.java:695)
> Exception in thread "SciJava-111bda67-Thread-2202"
> java.lang.OutOfMemoryError: unable to create new native thread
> at java.lang.Thread.start0(Native Method)
> at java.lang.Thread.start(Thread.java:673)
> at java.util.concurrent.ThreadPoolExecutor.addThread(
> ThreadPoolExecutor.java:681)
> at java.util.concurrent.ThreadPoolExecutor.addIfUnderMaximumPoolSize(
> ThreadPoolExecutor.java:727)
> at java.util.concurrent.ThreadPoolExecutor.execute(
> ThreadPoolExecutor.java:655)
> at java.util.concurrent.AbstractExecutorService.submit(
> AbstractExecutorService.java:78)
> at org.scijava.thread.DefaultThreadService.run(
> DefaultThreadService.java:80)
> at org.scijava.event.DefaultEventBus.publishLater(
> DefaultEventBus.java:217)
> at org.scijava.event.DefaultEventBus.publishLater(
> DefaultEventBus.java:105)
> at org.scijava.event.DefaultEventService.publishLater(
> DefaultEventService.java:111)
> at org.scijava.app.DefaultStatusService.publish(
> DefaultStatusService.java:112)
> at org.scijava.app.DefaultStatusService.showStatus(
> DefaultStatusService.java:73)
> at net.imagej.minmax.DefaultMinMaxMethod.report(
> DefaultMinMaxMethod.java:301)
> at net.imagej.minmax.DefaultMinMaxMethod.compute(
> DefaultMinMaxMethod.java:234)
> at net.imagej.minmax.DefaultMinMaxMethod$1.run(
> DefaultMinMaxMethod.java:180)
> at java.lang.Thread.run(Thread.java:695)
> Exception in thread "SciJava-111bda67-Thread-2200"
> java.lang.OutOfMemoryError: unable to create new native thread
> at java.lang.Thread.start0(Native Method)
> at java.lang.Thread.start(Thread.java:673)
> at java.util.concurrent.ThreadPoolExecutor.addThread(
> ThreadPoolExecutor.java:681)
> at java.util.concurrent.ThreadPoolExecutor.addIfUnderMaximumPoolSize(
> ThreadPoolExecutor.java:727)
> at java.util.concurrent.ThreadPoolExecutor.execute(
> ThreadPoolExecutor.java:655)
> at java.util.concurrent.AbstractExecutorService.submit(
> AbstractExecutorService.java:78)
> at org.scijava.thread.DefaultThreadService.run(
> DefaultThreadService.java:80)
> at org.scijava.event.DefaultEventBus.publishLater(
> DefaultEventBus.java:217)
> at org.scijava.event.DefaultEventBus.publishLater(
> DefaultEventBus.java:105)
> at org.scijava.event.DefaultEventService.publishLater(
> DefaultEventService.java:111)
> at org.scijava.app.DefaultStatusService.publish(
> DefaultStatusService.java:112)
> at org.scijava.app.DefaultStatusService.showStatus(
> DefaultStatusService.java:73)
> at net.imagej.minmax.DefaultMinMaxMethod.report(
> DefaultMinMaxMethod.java:301)
> at net.imagej.minmax.DefaultMinMaxMethod.compute(
> DefaultMinMaxMethod.java:234)
> at net.imagej.minmax.DefaultMinMaxMethod$1.run(
> DefaultMinMaxMethod.java:180)
> at java.lang.Thread.run(Thread.java:695)
>
> --
> Benoit Lombardot
> Bio-Image informatics, Scientific Computing Facility
> Max Planck Institute CBG
> Pfotenhauer Str. 108, 01307 Dresden
>
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html