open-ephys / plugin-GUI

Software for processing, recording, and visualizing multichannel electrophysiology data
https://open-ephys.org/gui
GNU General Public License v3.0
192 stars 684 forks source link

Memory leak on shutdown (testing branch) #35

Closed jsiegle closed 8 years ago

jsiegle commented 8 years ago

On OS X, I'm getting the following message on GUI shutdown:

Leaked objects detected: 510 instance(s) of class GlyphInfo JUCE Assertion failure in juce_LeakedObjectDetector.h:95

It happens even if I haven't added any processors—just closing the GUI immediately after running triggers it.

I poked around a little to see if I could find the source, but there wasn't anything obvious.

aacuevas commented 8 years ago

I'm getting the same on Windows. I've been trying to hunt this one for a while. It only happens on Windows when running the debug version and through the debugger so I thought it was something more specific, but it doesn't seem so now. Any help hunting this one down will be well appreciated.

CleitonAguiar commented 8 years ago

I got this message on GUI shutdown:

Disabling processors... Disabling Record Node Disabling Audio Node Disabling Message Center Filter Viewport enabled.

Saving window bounds.

DISABLING DATAVIEWPORT CONNECTION * Leaked objects detected: 510 instance(s) of class GlyphInfo JUCE Assertion failure in juce_LeakedObjectDetector.h:95 * Leaked objects detected: 510 instance(s) of class Path JUCE Assertion failure in juce_LeakedObjectDetector.h:95 * Leaked objects detected: 2 instance(s) of class CustomTypeface JUCE Assertion failure in juce_LeakedObjectDetector.h:95 * Leaked objects detected: 2 instance(s) of class OwnedArray JUCE Assertion failure in juce_LeakedObjectDetector.h:95 *\ Leaked objects detected: 2 instance(s) of class Typeface JUCE Assertion failure in juce_LeakedObjectDetector.h:95

I'm using the plugin-GUI from the Master Brach (0.4.0). My OS is Ubuntu 14.04 ELS.

I'm also having an additional problem: the Intan Headstage cannot be detected. The Opal Kelly is recognized but nothing appears on the datastream slot.

sept-en commented 8 years ago

Thanks, Cleiton! We know about the problems with memory leaks and it's currently WIP.

2016-05-18 20:46 GMT+04:00 Cleiton Lopes Aguiar notifications@github.com:

I got this message on GUI shutdown:

Disabling processors... Disabling Record Node Disabling Audio Node Disabling Message Center Filter Viewport enabled.

Saving window bounds.

DISABLING DATAVIEWPORT CONNECTION * Leaked objects detected: 510 instance(s) of class GlyphInfo JUCE Assertion failure in juce_LeakedObjectDetector.h:95 * Leaked objects detected: 510 instance(s) of class Path JUCE Assertion failure in juce_LeakedObjectDetector.h:95 * Leaked objects detected: 2 instance(s) of class CustomTypeface JUCE Assertion failure in juce_LeakedObjectDetector.h:95 * Leaked objects detected: 2 instance(s) of class OwnedArray JUCE Assertion failure in juce_LeakedObjectDetector.h:95 *\ Leaked objects detected: 2 instance(s) of class Typeface JUCE Assertion failure in juce_LeakedObjectDetector.h:95

I'm using the plugin-GUI from the Master Brach (0.4.0). My OS is Ubuntu 14.04 ELS.

I'm also having an additional problem: the Intan Headstage cannot be detected. The Opal Kelly is recognized but nothing appears on the datastream slot.

— You are receiving this because you were assigned. Reply to this email directly or view it on GitHub https://github.com/open-ephys/plugin-GUI/issues/35#issuecomment-220087934

-Kirill A

CleitonAguiar commented 8 years ago

You're welcome!

What about problems with the Head stage detection? Have you guys faced something like this?

Thanks.

2016-05-18 11:52 GMT-05:00 Kirill notifications@github.com:

Thanks, Cleiton! We know about the problems with memory leaks and it's currently WIP.

2016-05-18 20:46 GMT+04:00 Cleiton Lopes Aguiar <notifications@github.com

:

I got this message on GUI shutdown:

Disabling processors... Disabling Record Node Disabling Audio Node Disabling Message Center Filter Viewport enabled.

Saving window bounds.

DISABLING DATAVIEWPORT CONNECTION * Leaked objects detected: 510 instance(s) of class GlyphInfo JUCE Assertion failure in juce_LeakedObjectDetector.h:95 * Leaked objects detected: 510 instance(s) of class Path JUCE Assertion failure in juce_LeakedObjectDetector.h:95 * Leaked objects detected: 2 instance(s) of class CustomTypeface JUCE Assertion failure in juce_LeakedObjectDetector.h:95 * Leaked objects detected: 2 instance(s) of class OwnedArray JUCE Assertion failure in juce_LeakedObjectDetector.h:95 *\ Leaked objects detected: 2 instance(s) of class Typeface JUCE Assertion failure in juce_LeakedObjectDetector.h:95

I'm using the plugin-GUI from the Master Brach (0.4.0). My OS is Ubuntu 14.04 ELS.

I'm also having an additional problem: the Intan Headstage cannot be detected. The Opal Kelly is recognized but nothing appears on the datastream slot.

— You are receiving this because you were assigned. Reply to this email directly or view it on GitHub < https://github.com/open-ephys/plugin-GUI/issues/35#issuecomment-220087934>

-Kirill A

— You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/open-ephys/plugin-GUI/issues/35#issuecomment-220089579

Dr. Cleiton Lopes Aguiar Postdoctoral Scholar - São Paulo Research Foundation (FAPESP) Dr. João Pereira Leites's lab - Ribeirão Preto School of Medicine (FMRP) University of São Paulo Ribeirão Preto - SP - Brazil Phone: +55 16 33154634 Mobile: +55 19 993194438 Skype: cleitonbiousp

CleitonAguiar commented 8 years ago

I actually just tested the non-plugin GUI and the 32 channels Intan Head stage can be detected without any problems.

jvoigts commented 8 years ago

That's odd - I don't recall ever seeing this problem, and the code for the rhythm api should be pretty much the same between the versions. Can you check whether you get any specific errors, or at what stage the headstage detection fails?

CleitonAguiar commented 8 years ago

Hi Jakob,

Thanks for quickly replying.

This what I see when drop the Rhythm FPGA to the signal chain:

---- Intan Technologies ---- Rhythm RHD2000 Controller v1.41 ----

FrontPanel DLL loaded. Built: Feb 1 2012 17:34:05

Scanning USB for Opal Kelly devices...

Found 1 Opal Kelly device connected: Device #1: Opal Kelly XEM6010LX45 with serial number 141000083Q

FPGA system clock: 100 MHz Opal Kelly device firmware version: 3.1 Opal Kelly device serial number: 141000083QZ�� Opal Kelly device ID string: Opal Kelly XEM6010

Rhythm configuration file successfully loaded. Rhythm version number: 1

Initializing acquisition board. Sample rate set to 30000 Sample rate set to 30000 Number of enabled data streams: 8 Checking for connected amplifier chips... Number of enabled data streams: 0 Sample rate set to 30000 Adding node to graph with ID number 100

Rhythm FPGA updating settings. Rhythm FPGA setting num outputs to 0 Setting buffer address to 0x21fd690 Input buffer address is 0x21fd690

After click on the datastream slot:

Rhythm FPGA updating settings. Rhythm FPGA setting num outputs to 0

And when I click on "Play", I get the following message:

Updating connections:

Signal chain: 0

Source node: Rhythm FPGA. Connecting to audio and record nodes. No dest node.

Enabling processors... Rhythm FPGA said it's not OK. Control panel received signal to disable callbacks.

CleitonAguiar commented 8 years ago

**This is the massage I got running the non-plugin GUI:

I think it's not detecting the Head Stage either:**

---- Intan Technologies ---- Rhythm RHD2000 Controller v1.0 ----

FrontPanel DLL loaded. Built: Feb 1 2012 17:34:05

Scanning USB for Opal Kelly devices...

Found 1 Opal Kelly device connected: Device #1: Opal Kelly XEM6010LX45 with serial number 141000083Q

FPGA system clock: 100 MHz Opal Kelly device firmware version: 3.1 Opal Kelly device serial number: 141000083Qf1 Opal Kelly device ID string: Opal Kelly XEM6010

Rhythm configuration file successfully loaded. Rhythm version number: 1

Initializing acquisition board. Sample rate set to 30000 Number of enabled data streams: 8 Checking for connected amplifier chips... Enabled channels: 0 0 0 0 0 0 0 0 Enabled channels: 0 0 0 0 0 0 0 0 Enabled channels: 0 0 0 0 0 0 0 0 Enabled channels: 0 0 0 0 0 0 0 0 Enabled channels: 0 0 0 0 0 0 0 0 Enabled channels: 0 0 0 0 0 0 0 0 Enabled channels: 0 0 0 0 0 0 0 0 Enabled channels: 0 0 0 0 0 0 0 0 Number of enabled data streams: 0 Sample rate set to 30000 Adding node to graph with ID number 100

Could somenone please just confirm if the headstage is not being recognized in this case too? If yes. I'll probably remove these comments from this topic and send a couple of questions through the Open Ephys google group.

Thanks.

aacuevas commented 8 years ago

From the look of it, neither version is properly recognizing the headstage. Have you tried plugging it into a different port? You can also try to connect the headstage directly without the cable, to discard physical issues.

CleitonAguiar commented 8 years ago

Hi Aarón,

Thank you for the simple but extremely useful tip.

I just have connected the headstage directly into the board. Indeed, now the headstage can be recognized. So, the problem was the cable I have made.

I apologize for adding an off-topic into this Issue. Shall I remove my comments?

Also, I have a couple of questions on making cables for this acquisition system. How should I proceed?

2016-05-19 0:33 GMT-05:00 Aarón Cuevas López notifications@github.com:

From the look of it, neither version is properly recognizing the headstage. Have you tried plugging it into a different port? You can also try to connect the headstage directly without the cable, to discard physical issues.

— You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/open-ephys/plugin-GUI/issues/35#issuecomment-220231620

Dr. Cleiton Lopes Aguiar Postdoctoral Scholar - São Paulo Research Foundation (FAPESP) University of São Paulo - FMRP

Visiting Scholar - Diba's Lab University of Wisconsin-Milwaukee Phone: +1-414-469-4637 Skype: cleitonbiousp

jvoigts commented 8 years ago

Sounds good - at least we know where the problem is. I'd say lets keep this as is and close the issue when the memory leak is fixed.

You can either post a cable related question on the forum/google group, or maybe comment on https://open-ephys.atlassian.net/wiki/display/OEW/Fine+wire+tether

in either case, it would be great if you could add a description of how to solve your problem to the wiki when you're done.

jsiegle commented 8 years ago

The memory leak was related to font loading when using "static const Font" outside the class definition. It should be fixed now.