[jboss-cvs] JBoss Messaging SVN: r4711 - in trunk: native/bin and 3 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Jul 22 20:06:50 EDT 2008
Author: clebert.suconic at jboss.com
Date: 2008-07-22 20:06:50 -0400 (Tue, 22 Jul 2008)
New Revision: 4711
Added:
trunk/native/JBMNative.kdevelop
trunk/native/JBMNative.kdevelop.pcs
trunk/native/JBMNative.kdevses
Modified:
trunk/native/bin/libJBMLibAIO64.so
trunk/native/src/JNICallbackAdapter.cpp
trunk/native/src/JNICallbackAdapter.h
trunk/native/src/LibAIOController.cpp
trunk/tests/src/org/jboss/messaging/tests/stress/journal/ValidateTransactionHealthTest.java
trunk/tests/src/org/jboss/messaging/tests/stress/journal/remote/RemoteJournalAppender.java
Log:
Fixing a bug on the native layer
Added: trunk/native/JBMNative.kdevelop
===================================================================
--- trunk/native/JBMNative.kdevelop (rev 0)
+++ trunk/native/JBMNative.kdevelop 2008-07-23 00:06:50 UTC (rev 4711)
@@ -0,0 +1,145 @@
+<?xml version = '1.0'?>
+<kdevelop>
+ <general>
+ <author>clebert</author>
+ <email>csuconic at redhat.com</email>
+ <version>[1.0.Alpha]</version>
+ <projectmanagement>KDevAutoProject</projectmanagement>
+ <primarylanguage>C++</primarylanguage>
+ <ignoreparts/>
+ <projectname>JBMNative</projectname>
+ </general>
+ <kdevautoproject>
+ <general>
+ <useconfiguration>debug</useconfiguration>
+ </general>
+ <configurations>
+ <optimized>
+ <builddir>optimized</builddir>
+ <ccompiler>GccOptions</ccompiler>
+ <cxxcompiler>GppOptions</cxxcompiler>
+ <f77compiler>G77Options</f77compiler>
+ <cxxflags>-O2 -g0</cxxflags>
+ </optimized>
+ <debug>
+ <configargs>--enable-debug=full</configargs>
+ <builddir>debug</builddir>
+ <ccompiler>GccOptions</ccompiler>
+ <cxxcompiler>GppOptions</cxxcompiler>
+ <f77compiler>G77Options</f77compiler>
+ <cxxflags>-O0 -g3</cxxflags>
+ </debug>
+ </configurations>
+ <make>
+ <envvars>
+ <envvar value="1" name="WANT_AUTOCONF_2_5" />
+ <envvar value="1" name="WANT_AUTOMAKE_1_6" />
+ </envvars>
+ </make>
+ </kdevautoproject>
+ <kdevdebugger>
+ <general>
+ <dbgshell>libtool</dbgshell>
+ </general>
+ </kdevdebugger>
+ <kdevdoctreeview>
+ <ignoretocs>
+ <toc>ada</toc>
+ <toc>ada_bugs_gcc</toc>
+ <toc>bash</toc>
+ <toc>bash_bugs</toc>
+ <toc>clanlib</toc>
+ <toc>fortran_bugs_gcc</toc>
+ <toc>gnome1</toc>
+ <toc>gnustep</toc>
+ <toc>gtk</toc>
+ <toc>gtk_bugs</toc>
+ <toc>haskell</toc>
+ <toc>haskell_bugs_ghc</toc>
+ <toc>java_bugs_gcc</toc>
+ <toc>java_bugs_sun</toc>
+ <toc>kde2book</toc>
+ <toc>opengl</toc>
+ <toc>pascal_bugs_fp</toc>
+ <toc>php</toc>
+ <toc>php_bugs</toc>
+ <toc>perl</toc>
+ <toc>perl_bugs</toc>
+ <toc>python</toc>
+ <toc>python_bugs</toc>
+ <toc>qt-kdev3</toc>
+ <toc>ruby</toc>
+ <toc>ruby_bugs</toc>
+ <toc>sdl</toc>
+ <toc>sw</toc>
+ <toc>w3c-dom-level2-html</toc>
+ <toc>w3c-svg</toc>
+ <toc>w3c-uaag10</toc>
+ <toc>wxwidgets_bugs</toc>
+ </ignoretocs>
+ <ignoreqt_xml>
+ <toc>Guide to the Qt Translation Tools</toc>
+ <toc>Qt Assistant Manual</toc>
+ <toc>Qt Designer Manual</toc>
+ <toc>Qt Reference Documentation</toc>
+ <toc>qmake User Guide</toc>
+ </ignoreqt_xml>
+ <ignoredoxygen>
+ <toc>KDE Libraries (Doxygen)</toc>
+ </ignoredoxygen>
+ </kdevdoctreeview>
+ <kdevfilecreate>
+ <filetypes/>
+ <useglobaltypes>
+ <type ext="ui" />
+ <type ext="cpp" />
+ <type ext="h" />
+ </useglobaltypes>
+ </kdevfilecreate>
+ <kdevcppsupport>
+ <qt>
+ <used>false</used>
+ <version>3</version>
+ <includestyle>3</includestyle>
+ <root></root>
+ <designerintegration>EmbeddedKDevDesigner</designerintegration>
+ <qmake></qmake>
+ <designer></designer>
+ <designerpluginpaths/>
+ </qt>
+ <references/>
+ <codecompletion>
+ <automaticCodeCompletion>false</automaticCodeCompletion>
+ <automaticArgumentsHint>true</automaticArgumentsHint>
+ <automaticHeaderCompletion>true</automaticHeaderCompletion>
+ <codeCompletionDelay>250</codeCompletionDelay>
+ <argumentsHintDelay>400</argumentsHintDelay>
+ <headerCompletionDelay>250</headerCompletionDelay>
+ <showOnlyAccessibleItems>false</showOnlyAccessibleItems>
+ <completionBoxItemOrder>0</completionBoxItemOrder>
+ <howEvaluationContextMenu>true</howEvaluationContextMenu>
+ <showCommentWithArgumentHint>true</showCommentWithArgumentHint>
+ <statusBarTypeEvaluation>false</statusBarTypeEvaluation>
+ <namespaceAliases>std=_GLIBCXX_STD;__gnu_cxx=std</namespaceAliases>
+ <processPrimaryTypes>true</processPrimaryTypes>
+ <processFunctionArguments>false</processFunctionArguments>
+ <preProcessAllHeaders>false</preProcessAllHeaders>
+ <parseMissingHeadersExperimental>false</parseMissingHeadersExperimental>
+ <resolveIncludePathsUsingMakeExperimental>false</resolveIncludePathsUsingMakeExperimental>
+ <alwaysParseInBackground>true</alwaysParseInBackground>
+ <usePermanentCaching>true</usePermanentCaching>
+ <alwaysIncludeNamespaces>false</alwaysIncludeNamespaces>
+ <includePaths>.;</includePaths>
+ </codecompletion>
+ </kdevcppsupport>
+ <kdevfileview>
+ <groups>
+ <hidenonprojectfiles>false</hidenonprojectfiles>
+ <hidenonlocation>false</hidenonlocation>
+ </groups>
+ <tree>
+ <hidepatterns>*.o,*.lo,CVS</hidepatterns>
+ <hidenonprojectfiles>false</hidenonprojectfiles>
+ </tree>
+ </kdevfileview>
+</kdevelop>
Added: trunk/native/JBMNative.kdevelop.pcs
===================================================================
(Binary files differ)
Property changes on: trunk/native/JBMNative.kdevelop.pcs
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/native/JBMNative.kdevses
===================================================================
--- trunk/native/JBMNative.kdevses (rev 0)
+++ trunk/native/JBMNative.kdevses 2008-07-23 00:06:50 UTC (rev 4711)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE KDevPrjSession>
+<KDevPrjSession>
+ <DocsAndViews NumberOfDocuments="3" >
+ <Doc0 NumberOfViews="1" URL="file:///work/projects/trunk/native/src/JNICallbackAdapter.cpp" >
+ <View0 Encoding="" line="24" Type="Source" />
+ </Doc0>
+ <Doc1 NumberOfViews="1" URL="file:///work/projects/trunk/native/src/JNICallbackAdapter.h" >
+ <View0 Encoding="" line="35" Type="Source" />
+ </Doc1>
+ <Doc2 NumberOfViews="1" URL="file:///work/projects/trunk/native/src/LibAIOController.cpp" >
+ <View0 Encoding="" line="96" Type="Source" />
+ </Doc2>
+ </DocsAndViews>
+ <pluginList>
+ <kdevdebugger>
+ <breakpointList/>
+ <showInternalCommands value="0" />
+ </kdevdebugger>
+ <kdevastyle>
+ <Extensions ext="*.cpp *.h,*.c *.h,*.cxx *.hxx,*.c++ *.h++,*.cc *.hh,*.C *.H,*.diff,*.inl,*.java,*.moc,*.patch,*.tlh,*.xpm" />
+ <AStyle IndentPreprocessors="0" FillCount="4" PadParenthesesOut="1" IndentNamespaces="1" IndentLabels="1" Fill="Tabs" MaxStatement="40" Brackets="Break" MinConditional="-1" IndentBrackets="0" PadParenthesesUn="1" BlockBreak="0" KeepStatements="1" KeepBlocks="1" BlockIfElse="0" IndentSwitches="1" PadOperators="0" FStyle="UserDefined" IndentCases="0" FillEmptyLines="0" BracketsCloseHeaders="0" BlockBreakAll="0" PadParenthesesIn="1" IndentClasses="1" IndentBlocks="0" FillForce="0" />
+ </kdevastyle>
+ <kdevbookmarks>
+ <bookmarks/>
+ </kdevbookmarks>
+ <kdevvalgrind>
+ <executable path="" params="" />
+ <valgrind path="" params="" />
+ <calltree path="" params="" />
+ <kcachegrind path="" />
+ </kdevvalgrind>
+ </pluginList>
+</KDevPrjSession>
Modified: trunk/native/bin/libJBMLibAIO64.so
===================================================================
(Binary files differ)
Modified: trunk/native/src/JNICallbackAdapter.cpp
===================================================================
--- trunk/native/src/JNICallbackAdapter.cpp 2008-07-22 20:34:57 UTC (rev 4710)
+++ trunk/native/src/JNICallbackAdapter.cpp 2008-07-23 00:06:50 UTC (rev 4711)
@@ -22,11 +22,12 @@
#include <iostream>
#include "JavaUtilities.h"
-JNICallbackAdapter::JNICallbackAdapter(AIOController * _controller, jobject _callback, jobject _fileController) : CallbackAdapter(), refs(1)
+JNICallbackAdapter::JNICallbackAdapter(AIOController * _controller, jobject _callback, jobject _fileController, jobject _bufferReference) : CallbackAdapter(), refs(1)
{
controller = _controller;
callback = _callback;
fileController = _fileController;
+ bufferReference = _bufferReference;
}
JNICallbackAdapter::~JNICallbackAdapter()
@@ -50,4 +51,5 @@
{
JNI_ENV(threadContext)->DeleteGlobalRef(callback);
JNI_ENV(threadContext)->DeleteGlobalRef(fileController);
+ JNI_ENV(threadContext)->DeleteGlobalRef(bufferReference);
}
Modified: trunk/native/src/JNICallbackAdapter.h
===================================================================
--- trunk/native/src/JNICallbackAdapter.h 2008-07-22 20:34:57 UTC (rev 4710)
+++ trunk/native/src/JNICallbackAdapter.h 2008-07-23 00:06:50 UTC (rev 4711)
@@ -33,12 +33,13 @@
AIOController * controller;
jobject callback;
jobject fileController;
+ jobject bufferReference;
int refs;
void destroy(THREAD_CONTEXT threadContext);
public:
// _ob must be a global Reference (use createGloblReferente before calling the constructor)
- JNICallbackAdapter(AIOController * _controller, jobject _callback, jobject _fileController);
+ JNICallbackAdapter(AIOController * _controller, jobject _callback, jobject _fileController, jobject _bufferReference);
virtual ~JNICallbackAdapter();
void done(THREAD_CONTEXT threadContext);
void onError(THREAD_CONTEXT threadContext, long error, std::string error);
Modified: trunk/native/src/LibAIOController.cpp
===================================================================
--- trunk/native/src/LibAIOController.cpp 2008-07-22 20:34:57 UTC (rev 4710)
+++ trunk/native/src/LibAIOController.cpp 2008-07-23 00:06:50 UTC (rev 4711)
@@ -94,7 +94,7 @@
return;
}
- CallbackAdapter * adapter = new JNICallbackAdapter(controller, env->NewGlobalRef(callback), env->NewGlobalRef(objThis));
+ CallbackAdapter * adapter = new JNICallbackAdapter(controller, env->NewGlobalRef(callback), env->NewGlobalRef(objThis), env->NewGlobalRef(jbuffer));
controller->fileOutput.read(env, position, (size_t)size, buffer, adapter);
}
@@ -117,7 +117,7 @@
return;
}
- CallbackAdapter * adapter = new JNICallbackAdapter(controller, env->NewGlobalRef(callback), env->NewGlobalRef(objThis));
+ CallbackAdapter * adapter = new JNICallbackAdapter(controller, env->NewGlobalRef(callback), env->NewGlobalRef(objThis), env->NewGlobalRef(jbuffer));
controller->fileOutput.write(env, position, (size_t)size, buffer, adapter);
}
Modified: trunk/tests/src/org/jboss/messaging/tests/stress/journal/ValidateTransactionHealthTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/stress/journal/ValidateTransactionHealthTest.java 2008-07-22 20:34:57 UTC (rev 4710)
+++ trunk/tests/src/org/jboss/messaging/tests/stress/journal/ValidateTransactionHealthTest.java 2008-07-23 00:06:50 UTC (rev 4711)
@@ -33,6 +33,13 @@
import org.jboss.messaging.tests.stress.StressTestBase;
import org.jboss.messaging.tests.stress.journal.remote.RemoteJournalAppender;
+/**
+ *
+ * This test spawns a remote VM, as we want to "crash" the VM right after the journal is filled with data
+ *
+ * @author <a href="mailto:clebert.suconic at jboss.com">Clebert Suconic</a>
+ *
+ */
public class ValidateTransactionHealthTest extends StressTestBase
{
@@ -48,42 +55,47 @@
public void testAIO() throws Exception
{
- internalTest("aio", "/tmp/aiojournal", 100000, 100, true, true, 1);
+ internalTest("aio", "/tmp/aiojournal", 10000, 100, true, true, 1);
}
public void testAIOHugeTransaction() throws Exception
{
- internalTest("aio", "/tmp/aiojournal", 100000, 100000, true, true, 1);
+ internalTest("aio", "/tmp/aiojournal", 10000, 10000, true, true, 1);
}
public void testAIOMultiThread() throws Exception
{
- internalTest("aio", "/tmp/aiojournal", 10000, 100, true, true, 10);
+ internalTest("aio", "/tmp/aiojournal", 1000, 100, true, true, 10);
}
public void testAIONonTransactional() throws Exception
{
- internalTest("aio", "/tmp/aiojournal", 100000, 0, true, true, 1);
+ internalTest("aio", "/tmp/aiojournal", 10000, 0, true, true, 1);
}
public void testAIONonTransactionalNoExternalProcess() throws Exception
{
- internalTest("aio", "/tmp/aiojournal", 10000, 0, true, false, 10);
+ internalTest("aio", "/tmp/aiojournal", 1000, 0, true, false, 10);
}
public void testNIO() throws Exception
{
- internalTest("nio", "/tmp/niojournal", 100000, 100, true, true, 1);
+ internalTest("nio", "/tmp/niojournal", 10000, 100, true, true, 1);
}
+ public void testNIOHugeTransaction() throws Exception
+ {
+ internalTest("nio", "/tmp/aiojournal", 10000, 10000, true, true, 1);
+ }
+
public void testNIOMultiThread() throws Exception
{
- internalTest("nio", "/tmp/niojournal", 10000, 100, true, true, 10);
+ internalTest("nio", "/tmp/niojournal", 1000, 100, true, true, 10);
}
public void testNIONonTransactional() throws Exception
{
- internalTest("nio", "/tmp/niojournal", 100000, 0, true, true, 1);
+ internalTest("nio", "/tmp/niojournal", 10000, 0, true, true, 1);
}
// Package protected ---------------------------------------------
Modified: trunk/tests/src/org/jboss/messaging/tests/stress/journal/remote/RemoteJournalAppender.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/stress/journal/remote/RemoteJournalAppender.java 2008-07-22 20:34:57 UTC (rev 4710)
+++ trunk/tests/src/org/jboss/messaging/tests/stress/journal/remote/RemoteJournalAppender.java 2008-07-23 00:06:50 UTC (rev 4711)
@@ -23,7 +23,6 @@
package org.jboss.messaging.tests.stress.journal.remote;
import java.nio.ByteBuffer;
-import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
import org.jboss.messaging.core.journal.LoadManager;
@@ -34,6 +33,11 @@
import org.jboss.messaging.core.journal.impl.JournalImpl;
import org.jboss.messaging.core.journal.impl.NIOSequentialFileFactory;
+/**
+ *
+ * @author <a href="mailto:clebert.suconic at jboss.com">Clebert Suconic</a>
+ *
+ */
public class RemoteJournalAppender
{
@@ -55,6 +59,7 @@
+ " aio|nio <journalDirectory> <NumberOfElements> <TransactionSize> <NumberOfThreads>");
System.exit(-1);
}
+ System.out.println("Running");
String journalType = args[0];
String journalDir = args[1];
long numberOfElements = Long.parseLong(args[2]);
@@ -64,11 +69,9 @@
try
{
- JournalImpl journal = appendData(journalType, journalDir,
+ appendData(journalType, journalDir,
numberOfElements, transactionSize, numberOfThreads);
- journal.stop(); // TODO: Remove this stop (for transactional tests at least)
-
}
catch (Exception e)
{
@@ -229,6 +232,11 @@
{
journal.appendCommitRecord(transactionId);
}
+
+ if (transactionSize == 0)
+ {
+ journal.debugWait();
+ }
}
catch (Exception e)
{
More information about the jboss-cvs-commits
mailing list