[kepler-dev] questions about matlab actor in snow leopard.

Jianwu Wang jianwu at sdsc.edu
Mon Apr 26 17:29:16 PDT 2010


Hi Christopher,

    Thanks for your quick update. It works for me.  I replaced the 
$Kepler/common/lib/ptolemy/matlab/libptmatlab.dylib by the new generated 
libptmatlab.jnilib in $PTII/ptolemy/ptolemy/makefile directory and 
tested the 
$Kepler/outreach/resources/demos/Matlab/MatlabExpression.xml.   The 
workflow was running well. But the whole Kepler crashed when I tried to 
stop the execution.

A pop up window shows that 'Kepler quit unexpectedly while using the 
libptmatlab.jnilib plugin.' Its detailed message shows that:

Thread 30 Crashed:  Java: MatlabExpression-debug
0   libSystem.B.dylib                 0x00007fff8557e01e 
__semwait_signal_nocancel + 10
1   libSystem.B.dylib                 0x00007fff8557df20 
nanosleep$NOCANCEL + 129
2   libSystem.B.dylib                 0x00007fff855da902 usleep$NOCANCEL 
+ 57
3   libSystem.B.dylib                 0x00007fff855f9eb8 abort + 93
4   libSystem.B.dylib                 0x00007fff85511a75 free + 128
5   libptmatlab.jnilib                0x000000012f6788f8 
Java_ptolemy_matlab_Engine_ptmatlabEngClose + 170


   Dan and I dug it a little bit, and found out it is because of the 
sentence 162 in ptmatlab.cc : 'free(output_buf);'. We tested the 
malloc_size(output_buf) function before free() function, and it returned 
0. The console message shows that:

      [run] ptmatlabCreateDoubleMatrix(input) 25 x 25
      [run] ptmatlabDestroy(input)
      [run] matlabEngine.evalString("surf(input)")
      [run] matlabEngine.close(5638846816)
      [run] ptmatlabEngClose: calling engClose(1343879520)
      [run] java(49363,0x14e000000) malloc: *** error for object 
0xde5600: pointer being freed was not allocated
      [run] *** set a breakpoint in malloc_error_break to debug
      [run] ptmatlabEngClose: freeing 0xde5600


   I remember I also met the console message when I using 32 bit leopard 
with 64bit Matlab and Java 1.6 64 bit. But Kepler doesn't crash at 
leopard. Do you have any idea about it? Thanks a lot!

Christopher Brooks wrote:
> Hi Jianwu,
> I just updated $PTII/ptolemy/ptolemy/makefile so that it will build
> either
> * 32bit
> * 64bit
> * Universal (32bit and 64bit).
>
> If you have a chance, please update your tree and rerun "make".
>
> Thanks,
>
> _Christopher
>
> On 4/26/10 4:01 PM, Jianwu Wang wrote:
>> Hi Chistopher,
>>
>> My machine is snow leopard (10.6.3, 64 bit), matlab 2009b 64 bit, Java
>> 1.6 64 bit. I tried to use 'make' command in ptII/ptolemy/matlab
>> directory to generate libptmatlab file. But it has the following error.
>> I think it is because my matlab installation do not have maci directory,
>> only have maci64 directory. Do you think the problem is because of my
>> installation or make file? Thanks.
>>
>> echo $DYLD_LIBRARY_PATH
>> /Applications/MATLAB64/MATLAB_R2009b/MATLAB_R2009b.app/bin/maci64:/Applications/MATLAB64/MATLAB_R2009b/MATLAB_R2009b.app/sys/os/maci64 
>>
>>
>>
>> kepler:matlab jianwu$ make
>> if [ "`uname -s`" = "Darwin" ]; then \
>> make libptmatlabUniversal.jnilib; \
>> mv libptmatlabUniversal.jnilib libptmatlab.jnilib; \
>> file libptmatlab.jnilib; \
>> else \
>> CLASSPATH="../.."
>> "/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/bin/javah" 
>>
>> -jni -o ptmatlab.h ptolemy.matlab.Engine; \
>> "/usr/bin/gcc" -DPT_NO_ENGGETARRAY -DPT_NO_ENGPUTARRAY 
>> -DPT_NO_MXGETNAME \
>> "-I/Applications/MATLAB64/MATLAB_R2009b/MATLAB_R2009b.app/extern/include" 
>> \
>> "-I/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/../Headers" 
>>
>> \
>> "-I/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/../include/darwin" 
>>
>> \
>> ptmatlab.cc -fno-exceptions -dynamiclib -o libptmatlab32.jnilib
>> -L"/Applications/MATLAB64/MATLAB_R2009b/MATLAB_R2009b.app/bin/maci"
>> -leng -lmx -lmex; \
>> fi
>> CLASSPATH="../.."
>> "/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/bin/javah" 
>>
>> -jni -o ptmatlab.h ptolemy.matlab.Engine
>> "/usr/bin/gcc" -DPT_NO_ENGGETARRAY -DPT_NO_ENGPUTARRAY 
>> -DPT_NO_MXGETNAME \
>> "-I/Applications/MATLAB64/MATLAB_R2009b/MATLAB_R2009b.app/extern/include" 
>> \
>> "-I/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/../Headers" 
>>
>> \
>> "-I/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/../include/darwin" 
>>
>> \
>> ptmatlab.cc -fno-exceptions -dynamiclib -o libptmatlab32.jnilib
>> -L"/Applications/MATLAB64/MATLAB_R2009b/MATLAB_R2009b.app/bin/maci"
>> -leng -lmx -lmex
>> ld: warning: directory
>> '/Applications/MATLAB64/MATLAB_R2009b/MATLAB_R2009b.app/bin/maci'
>> following -L not found
>> ld: library not found for -leng
>> collect2: ld returned 1 exit status
>> make[1]: *** [libptmatlab32.jnilib] Error 1
>> mv: rename libptmatlabUniversal.jnilib to libptmatlab.jnilib: No such
>> file or directory
>> libptmatlab.jnilib: cannot open `libptmatlab.jnilib' (No such file or
>> directory)
>>
>


-- 

Best wishes

Sincerely yours

Jianwu Wang
wangjianwu at gmail.com

Post-Doctor
Scientific Workflow Automation Technologies (SWAT) Laboratory
San Diego Supercomputer Center 
University of California, San Diego
San Diego, U.S.A. 



More information about the Kepler-dev mailing list