It turns out the psc core dump was easy to fix:
Set the flag in the PLStream after closing the file
in ps.c .  The three tests were good:
xwin, psc and svg

So, I am ready to submit the updated
plcore.c  and  ps.c

Perhaps, though, other devices need a fix
similar to the ps.c, above.

Here is the output of git status:

 > git status | grep modified
         modified:   drivers/ps.c
         modified:   src/plcore.c

What are the comands for

git format
and
git am

to send the updates, please?

Norm


On 03/18/2015 09:59 AM, Norman Goldstein wrote:
> I downloaded the latest source code:
>
> git clone git://git.code.sf.net/p/plplot/plplot plplot.git
>
> Confirmed the memory leak is still in this version.
> (some headache, since the debug library did not get the "d' suffix)
>
> The fix eliminates this memory leak, and no others originate in plplot.
>
> Other tests:
>
> -- svg tested fine
> -- psc core dumped:
>
> The psc core dump is happening because the ps-specific "tidy" is being
> called twice, and the second time the output file is no longer valid.
>
> I can look into this, but I wanted to give some feedback, first.
> Let me know.
>
> Cheer,
> Norm
>
> PS
> I noticed  in file plcore.c, plSelectDev(), there is a "return"
> statement in the middle ,
> so the assignment statements at the end of the method would not be executed
> in this case.  So, I added the two new assignment statements also before the
> "return" statement.
>
> PPS What is the "fip" in "master fip", please?
>
>
> On 03/18/2015 12:59 AM, Alan W. Irwin wrote:
>> @Andrew: There are some really interesting release implications here,
>> and if you feel Norman's fix (ideally in git am form as I have
>> requested from him below) or some other variant of it you like is a
>> no-brainer please go ahead and push it (see my further comment on the
>> release delay implications at the end.).
>>
>> On 2015-03-17 20:28-0700 Norman Goldstein wrote:
>>
>>> I noticed that at the end of plSelectDev(), in plcore.c,
>>> a couple more fields of the PLStream
>>> needed to be filled in (feedback from valgrind :-)),
>>> so I added these two lines at line 3230:
>>>
>>>      plsc->tidy = (void*) dispatch_table[dev - 1]->pl_tidy;
>>>      plsc->tidy_data = (void*) plsc;
>>>
>>> I expect the first line is correct for all devices.
>>> I think the 2nd line is OK, too (I checked it is correct for
>>> XWindows, the only device I am using)
>>>
>> Hi Norm:
>>
>> As you are probably already aware, I plan to release a new version of
>> PLplot soon based on the git master tip version so your test of that
>> version (see access directions for master tip at
>> https://sourceforge.net/p/plplot/plplot/ci/master/tree/) would be much
>> appreciated.
>>
>> Just to make sure we are on the same page, here is what I get for
>> master tip for dev psc
>> (using the CMake option -DBUILD_TEST=ON and following up with "make
>> all" to build all the necessary prerequisites first.
>>
>> software@raven> valgrind examples/c/x00c -dev psc -o test.psc
>> ==9610== Memcheck, a memory error detector
>> ==9610== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
>> ==9610== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright
>> info
>> ==9610== Command: examples/c/x00c -dev psc -o test.psc
>> ==9610== ==9610== ==9610== HEAP SUMMARY:
>> ==9610==     in use at exit: 0 bytes in 0 blocks
>> ==9610==   total heap usage: 470 allocs, 470 frees, 132,943 bytes
>> allocated
>> ==9610== ==9610== All heap blocks were freed -- no leaks are possible
>> ==9610== ==9610== For counts of detected and suppressed errors, rerun
>> with: -v
>> ==9610== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 4 from 4)
>>
>> i.e., perfect valgrind results.
>>
>> And I also get perfect valgrind results for
>> software@raven> valgrind examples/c/x00c -dev svg -o test.svg
>>
>> Note that both psc and svg are non-interactive devices that have no
>> external library dependencies.
>>
>> In contrast, here are the -dev xwin results for the same (simple)
>> example.
>>
>> ==9758== Memcheck, a memory error detector
>> ==9758== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
>> ==9758== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright
>> info
>> ==9758== Command: examples/c/x00c -dev xwin
>> ==9758== ==9758== ==9758== HEAP SUMMARY:
>> ==9758==     in use at exit: 42,535 bytes in 444 blocks
>> ==9758==   total heap usage: 1,442 allocs, 998 frees, 434,710 bytes
>> allocated
>> ==9758== ==9758== LEAK SUMMARY:
>> ==9758==    definitely lost: 88 bytes in 1 blocks
>> ==9758==    indirectly lost: 58 bytes in 2 blocks
>> ==9758==      possibly lost: 0 bytes in 0 blocks
>> ==9758==    still reachable: 42,389 bytes in 441 blocks
>> ==9758==         suppressed: 0 bytes in 0 blocks
>> ==9758== Rerun with --leak-check=full to see details of leaked memory
>> ==9758== ==9758== For counts of detected and suppressed errors, rerun
>> with: -v
>> ==9758== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 4 from 4)
>>
>> Do you also confirm this -dev xwin leak issue for master tip?
>>
>> Assuming your answer is yes, does your above fix turn this into a
>> perfect valgrind result (again for master tip) without compromising
>> the perfect -dev svg and -dev psc results?
>>
>> Also, if you have what you feel is a definitive fix, and you also have
>> some git knowledge could you send it here using the "git am" command
>> so we know exactly the change you want to make and so we can give you
>> proper credit for your work?
>>
>> On the other hand, If you don't have a lot of git experience, we are
>> still happy to except your suggestion for a fix! Furthermore, if for
>> this case you decide you would like to gain some git experience, then
>> I would highly recommend you start by reading our README.developers
>> file (for master tip) which gives useful hints for our particular git
>> workflow.  We wrote that up from the perspective of git newbies (which
>> most of our active developers [including me] were when we started to
>> use git for Plplot development last summer).
>>
>> @Andrew:
>>
>> Although I am really anxious to get out the release, also note that if
>> Norman or you (based on his suggestions) find a definitive fix for
>> this particular plend-related issue for -dev xwin without compromising
>> our perfect -dev psc and -dev psc results, then I would be willing to
>> delay our release to test his fix (or your modification of same)
>> extensively for all our noninteractive and interactive devices. Also,
>> I assume you would be interested in doing such tests on your platforms
>> as well.  The fact is we currently have a lot of plend-related issues
>> for many of our interactive devices right now (and even a few
>> noninteractive devices) so if there is a fix that cleans up a
>> significant fraction of those issues for this release without causing
>> other problems, it would make me a happy man!
>>
>> Alan
>> __________________________
>> Alan W. Irwin
>>
>> Astronomical research affiliation with Department of Physics and
>> Astronomy,
>> University of Victoria (astrowww.phys.uvic.ca).
>>
>> Programming affiliations with the FreeEOS equation-of-state
>> implementation for stellar interiors (freeeos.sf.net); the Time
>> Ephemerides project (timeephem.sf.net); PLplot scientific plotting
>> software package (plplot.sf.net); the libLASi project
>> (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
>> and the Linux Brochure Project (lbproject.sf.net).
>> __________________________
>>
>> Linux-powered Science
>> __________________________
>>
>
> ------------------------------------------------------------------------------
> Dive into the World of Parallel Programming The Go Parallel Website, sponsored
> by Intel and developed in partnership with Slashdot Media, is your hub for all
> things parallel software development, from weekly thought leadership blogs to
> news, videos, case studies, tutorials and more. Take a look and join the
> conversation now. http://goparallel.sourceforge.net/
> _______________________________________________
> Plplot-devel mailing list
> Plplot-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/plplot-devel
>


------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to