Mixing different OS in a cassandra cluster

2011-05-27 Thread Mikael Wikblom

Hi,

I tried to mix windows and linux in a cassandra cluster version 0.7.4 
and got an exception on a linux node bootstrapping from a windows node.


java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(Unknown Source)
at 
org.apache.cassandra.io.sstable.Descriptor.fromFilename(Descriptor.java:117)
at 
org.apache.cassandra.streaming.PendingFile$PendingFileSerializer.deserialize(PendingFile.java:126)
at 
org.apache.cassandra.streaming.StreamHeader$StreamHeaderSerializer.deserialize(StreamHeader.java:90)
at 
org.apache.cassandra.streaming.StreamHeader$StreamHeaderSerializer.deserialize(StreamHeader.java:72)
at 
org.apache.cassandra.net.IncomingTcpConnection.run(IncomingTcpConnection.java:90)


the problem is that the file name separator differs on windows and 
linux. Are there any plans to fix support for clusters with mixed nodes? 
A fix for the file name issue would be quite simple.


Thanks and regards
Mikael Wikblom



Build failed in Jenkins: Cassandra-0.8 #141

2011-05-27 Thread Apache Jenkins Server
See 

--
Started by an SCM change
Building remotely on ubuntu1
hudson.util.IOException2: remote file operation failed: 
 at 
hudson.remoting.Channel@1e16633c:ubuntu1
at hudson.FilePath.act(FilePath.java:752)
at hudson.FilePath.act(FilePath.java:738)
at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:684)
at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:633)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1181)
at 
hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:536)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:424)
at hudson.model.Run.run(Run.java:1374)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:145)
Caused by: java.io.IOException: Remote call on ubuntu1 failed
at hudson.remoting.Channel.call(Channel.java:652)
at hudson.FilePath.act(FilePath.java:745)
... 10 more
Caused by: java.lang.LinkageError: loader (instance of  
hudson/remoting/RemoteClassLoader): attempted  duplicate class definition for 
name: "hudson/model/Descriptor"
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
at java.lang.ClassLoader.defineClass(ClassLoader.java:480)
at 
hudson.remoting.RemoteClassLoader.loadClassFile(RemoteClassLoader.java:151)
at 
hudson.remoting.RemoteClassLoader.findClass(RemoteClassLoader.java:131)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2308)
at java.lang.Class.getDeclaredField(Class.java:1897)
at 
java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1627)
at java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:69)
at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:442)
at java.security.AccessController.doPrivileged(Native Method)
at java.io.ObjectStreamClass.(ObjectStreamClass.java:430)
at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:327)
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:564)
at 
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1600)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1513)
at 
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1600)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1513)
at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1749)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1963)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1887)
at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1963)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1887)
at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1963)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1887)
at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)
at hudson.remoting.UserRequest.deserialize(UserRequest.java:182)
at hudson.remoting.UserRequest.perform(UserRequest.java:98)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:270)
at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:636)
[TASKS] Skipping publisher since build result is FAILURE
Archiving artifacts
Publishing Javadoc
Rec

Build failed in Jenkins: Cassandra-0.8 #142

2011-05-27 Thread Apache Jenkins Server
See 

--
[...truncated 2002 lines...]
[junit] 
[junit] Testsuite: org.apache.cassandra.db.marshal.TypeValidationTest
[junit] Tests run: 9, Failures: 0, Errors: 0, Time elapsed: 0.356 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.db.marshal.UUIDTypeTest
[junit] Tests run: 5, Failures: 0, Errors: 0, Time elapsed: 0.114 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.db.migration.SerializationsTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.62 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.dht.BootStrapperTest
[junit] Tests run: 4, Failures: 0, Errors: 0, Time elapsed: 4.048 sec
[junit] 
[junit] - Standard Error -
[junit]  WARN 15:16:12,972 Generated random token 
Token(bytes[fdcf9176731070bffc277be73364c875]). Random tokens will result in an 
unbalanced ring; see http://wiki.apache.org/cassandra/Operations
[junit] -  ---
[junit] Testsuite: org.apache.cassandra.dht.ByteOrderedPartitionerTest
[junit] Tests run: 5, Failures: 0, Errors: 0, Time elapsed: 1.123 sec
[junit] 
[junit] Testsuite: 
org.apache.cassandra.dht.CollatingOrderPreservingPartitionerTest
[junit] Tests run: 7, Failures: 0, Errors: 0, Time elapsed: 1.455 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.dht.OrderPreservingPartitionerTest
[junit] Tests run: 6, Failures: 0, Errors: 0, Time elapsed: 1.157 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.dht.RandomPartitionerTest
[junit] Tests run: 5, Failures: 0, Errors: 0, Time elapsed: 0.77 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.dht.RangeTest
[junit] Tests run: 13, Failures: 0, Errors: 0, Time elapsed: 0.386 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.gms.ArrivalWindowTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.125 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.gms.GossipDigestTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.057 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.gms.SerializationsTest
[junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 0.385 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.hadoop.ColumnFamilyInputFormatTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.199 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.io.BloomFilterTrackerTest
[junit] Tests run: 3, Failures: 0, Errors: 0, Time elapsed: 0.386 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.io.CompactSerializerTest
[junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 1.571 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.io.LazilyCompactedRowTest
[junit] Tests run: 7, Failures: 0, Errors: 0, Time elapsed: 20.725 sec
[junit] 
[junit] - Standard Error -
[junit]  WARN 15:16:41,612 setting live ratio to maximum of 64 instead of 
72.5
[junit] -  ---
[junit] Testsuite: org.apache.cassandra.io.sstable.DescriptorTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.058 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.io.sstable.IndexHelperTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.065 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.io.sstable.LegacySSTableTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 1.353 sec
[junit] 
[junit] - Standard Error -
[junit]  WARN 15:16:57,074 Invalid file '.svn' in data directory 

[junit]  WARN 15:16:57,657 Invalid file '.svn' in data directory 

[junit] -  ---
[junit] Testsuite: org.apache.cassandra.io.sstable.SSTableReaderTest
[junit] Tests run: 4, Failures: 0, Errors: 0, Time elapsed: 5.389 sec
[junit] 
[junit] - Standard Error -
[junit]  WARN 15:17:02,151 setting live ratio to maximum of 64 instead of 
70.67857142857143
[junit] -  ---
[junit] Testsuite: org.apache.cassandra.io.sstable.SSTableTest
[junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 1.472 sec
[junit] 
[junit] Testsuite: 
org.apache.cassandra.io.sstable.SSTableWriterCommutativeTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 1.216 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.io.sstable.SSTableWriterTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 1.084 sec
[ju

Build failed in Jenkins: Cassandra-0.7 #499

2011-05-27 Thread Apache Jenkins Server
See 

Changes:

[jbellis] optimize column serializer creation
patch by jbellis; reviewed by slebresne for CASSANDRA-2716

--
[...truncated 1757 lines...]
[junit] Testsuite: org.apache.cassandra.locator.DynamicEndpointSnitchTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 6.168 sec
[junit] 
[junit] - Standard Error -
[junit] ERROR 08:25:21,579 Received untranslated stream from newer protcol 
version. Terminating connection!
[junit] -  ---
[junit] Testsuite: org.apache.cassandra.locator.NetworkTopologyStrategyTest
[junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 0.453 sec
[junit] 
[junit] Testsuite: 
org.apache.cassandra.locator.OldNetworkTopologyStrategyTest
[junit] Tests run: 3, Failures: 0, Errors: 0, Time elapsed: 0.464 sec
[junit] 
[junit] Testsuite: 
org.apache.cassandra.locator.ReplicationStrategyEndpointCacheTest
[junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 0.574 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.locator.SimpleStrategyTest
[junit] Tests run: 4, Failures: 0, Errors: 0, Time elapsed: 0.587 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.locator.TokenMetadataTest
[junit] Tests run: 3, Failures: 0, Errors: 0, Time elapsed: 0.422 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.service.AntiEntropyServiceTest
[junit] Tests run: 0, Failures: 0, Errors: 1, Time elapsed: 0.539 sec
[junit] 
[junit] Testcase: org.apache.cassandra.service.AntiEntropyServiceTest:  
Caused an ERROR
[junit] /127.0.0.1:7010 is in use by another process.  Change 
listen_address:storage_port in cassandra.yaml to values that do not conflict 
with other services
[junit] org.apache.cassandra.config.ConfigurationException: /127.0.0.1:7010 
is in use by another process.  Change listen_address:storage_port in 
cassandra.yaml to values that do not conflict with other services
[junit] at 
org.apache.cassandra.net.MessagingService.listen(MessagingService.java:174)
[junit] at 
org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:423)
[junit] at 
org.apache.cassandra.service.StorageService.initServer(StorageService.java:403)
[junit] at 
org.apache.cassandra.service.AntiEntropyServiceTest.prepareClass(AntiEntropyServiceTest.java:71)
[junit] 
[junit] 
[junit] Test org.apache.cassandra.service.AntiEntropyServiceTest FAILED
[junit] Testsuite: org.apache.cassandra.service.CassandraServerTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.411 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.service.ConsistencyLevelTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.611 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.service.EmbeddedCassandraServiceTest
[junit] Testsuite: org.apache.cassandra.service.EmbeddedCassandraServiceTest
[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
[junit] 
[junit] Testcase: 
org.apache.cassandra.service.EmbeddedCassandraServiceTest:BeforeFirstTest:  
  Caused an ERROR
[junit] Forked Java VM exited abnormally. Please note the time in the 
report does not reflect the time until the VM exit.
[junit] junit.framework.AssertionFailedError: Forked Java VM exited 
abnormally. Please note the time in the report does not reflect the time until 
the VM exit.
[junit] 
[junit] 
[junit] Test org.apache.cassandra.service.EmbeddedCassandraServiceTest 
FAILED (crashed)
[junit] Testsuite: org.apache.cassandra.service.InitClientTest
[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0.416 sec
[junit] 
[junit] Testcase: 
testInitClientStartup(org.apache.cassandra.service.InitClientTest):   
Caused an ERROR
[junit] /127.0.0.1:7010 is in use by another process.  Change 
listen_address:storage_port in cassandra.yaml to values that do not conflict 
with other services
[junit] org.apache.cassandra.config.ConfigurationException: /127.0.0.1:7010 
is in use by another process.  Change listen_address:storage_port in 
cassandra.yaml to values that do not conflict with other services
[junit] at 
org.apache.cassandra.net.MessagingService.listen(MessagingService.java:174)
[junit] at 
org.apache.cassandra.service.StorageService.initClient(StorageService.java:347)
[junit] at 
org.apache.cassandra.service.InitClientTest.testInitClientStartup(InitClientTest.java:33)
[junit] 
[junit] 
[junit] Test org.apache.cassandra.service.InitClientTest FAILED
[junit] Testsuite: org.apache.cassandra.service.MoveTest
[junit] Tests run: 6, Failures: 0, Errors: 0, Time elapsed: 1.086 sec
[junit] 
[junit] - Standard Error -
 

Build failed in Jenkins: Cassandra #909

2011-05-27 Thread Apache Jenkins Server
See 

Changes:

[slebresne] merge from 0.8

--
[...truncated 1940 lines...]
[junit] 
[junit] Testsuite: org.apache.cassandra.db.marshal.TypeCompareTest
[junit] Tests run: 5, Failures: 0, Errors: 0, Time elapsed: 0.083 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.db.marshal.TypeParserTest
[junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 0.133 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.db.marshal.TypeValidationTest
[junit] Tests run: 9, Failures: 0, Errors: 0, Time elapsed: 0.345 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.db.marshal.UUIDTypeTest
[junit] Tests run: 5, Failures: 0, Errors: 0, Time elapsed: 0.111 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.db.migration.SerializationsTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.632 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.dht.BootStrapperTest
[junit] Tests run: 4, Failures: 0, Errors: 0, Time elapsed: 3.131 sec
[junit] 
[junit] - Standard Error -
[junit]  WARN 08:24:06,734 Generated random token 
Token(bytes[7a200532d9ed63b23dc4b16d65253dc3]). Random tokens will result in an 
unbalanced ring; see http://wiki.apache.org/cassandra/Operations
[junit] -  ---
[junit] Testsuite: org.apache.cassandra.dht.ByteOrderedPartitionerTest
[junit] Tests run: 5, Failures: 0, Errors: 0, Time elapsed: 1.131 sec
[junit] 
[junit] Testsuite: 
org.apache.cassandra.dht.CollatingOrderPreservingPartitionerTest
[junit] Tests run: 7, Failures: 0, Errors: 0, Time elapsed: 1.475 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.dht.OrderPreservingPartitionerTest
[junit] Tests run: 6, Failures: 0, Errors: 0, Time elapsed: 1.166 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.dht.RandomPartitionerTest
[junit] Tests run: 5, Failures: 0, Errors: 0, Time elapsed: 0.774 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.dht.RangeTest
[junit] Tests run: 13, Failures: 0, Errors: 0, Time elapsed: 0.389 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.gms.ArrivalWindowTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.124 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.gms.GossipDigestTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.057 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.gms.SerializationsTest
[junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 0.386 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.hadoop.ColumnFamilyInputFormatTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.204 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.io.BloomFilterTrackerTest
[junit] Tests run: 3, Failures: 0, Errors: 0, Time elapsed: 0.373 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.io.CompactSerializerTest
[junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 1.433 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.io.LazilyCompactedRowTest
[junit] Tests run: 7, Failures: 0, Errors: 0, Time elapsed: 2.16 sec
[junit] 
[junit] - Standard Error -
[junit]  WARN 08:24:27,732 setting live ratio to maximum of 64 instead of 
72.5
[junit] -  ---
[junit] Testsuite: org.apache.cassandra.io.sstable.DescriptorTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.057 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.io.sstable.IndexHelperTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.064 sec
[junit] 
[junit] Testsuite: org.apache.cassandra.io.sstable.LegacySSTableTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 1.392 sec
[junit] 
[junit] - Standard Error -
[junit]  WARN 08:24:31,401 Invalid file '.svn' in data directory 

[junit]  WARN 08:24:32,020 Invalid file '.svn' in data directory 

[junit] -  ---
[junit] Testsuite: org.apache.cassandra.io.sstable.SSTableReaderTest
[junit] Tests run: 4, Failures: 0, Errors: 0, Time elapsed: 0.822 sec
[junit] 
[junit] - Standard Error -
[junit]  WARN 08:24:33,898 setting live ratio to maximum of 64 instead of 
71.0
[junit] -  ---
[junit] Testsuite: org.apache.cassandra.io.sstable.SSTableTest
[junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 1.136 sec

Re: [VOTE] Release Apache Cassandra 0.8.0 (take #2)

2011-05-27 Thread Sylvain Lebresne
Yeah, actually the fix to the fix of CASSANDRA-2626 had a typo too
(I fixed it directly in r1128460).

Moreover it turns out that CASSANDRA-2675 was a big problem for counters,
so I've committed it to the 0.8.0 branch too.

But -1 too on this release.

On Thu, May 26, 2011 at 4:09 AM, Brandon Williams  wrote:
> I can confirm this.  Third time's the charm?
>
> -1 on this release
>
> On Wed, May 25, 2011 at 8:50 PM, Shotaro Kamio  wrote:
>> Just looking at a patch, but CASSANDRA-2626 fix may not be right.
>> I'll check within a day.
>>
>> Regards,
>> Shotaro
>>
>>
>>
>> On Thu, May 26, 2011 at 6:05 AM, Eric Evans  wrote:
>>>
>>> OK, let's try this again; I propose the following artifacts for release
>>> as 0.8.0 (final).
>>>
>>> SVN:
>>> https://svn.apache.org/repos/asf/cassandra/branches/cassandra-0.8.0@r1127672
>>> Artifacts:
>>> https://repository.apache.org/content/repositories/orgapachecassandra-010
>>> Driver Artifacts and Debian Package: http://people.apache.org/~eevans
>>>
>>> The vote will remain open for 72 hours (longer if needed).
>>>
>>> [1]: http://goo.gl/tjU2P (CHANGES.txt)
>>> [2]: http://goo.gl/NII5h (NEWS.txt)
>>>
>>> --
>>> Eric Evans
>>> eev...@rackspace.com
>>>
>>>
>>
>>
>>
>> --
>> Shotaro Kamio
>>
>


Jenkins build is back to normal : Cassandra-0.8 #143

2011-05-27 Thread Apache Jenkins Server
See 




Jenkins build is back to stable : Cassandra-Coverage #55

2011-05-27 Thread Apache Jenkins Server
See