]
RH Bugzilla Integration commented on JGRP-2014:
-----------------------------------------------
Vaclav Dedik <vdedik(a)redhat.com> changed the Status of [bug
FILE_PING destination file name can include File.separator
characters
---------------------------------------------------------------------
Key: JGRP-2014
URL:
https://issues.jboss.org/browse/JGRP-2014
Project: JGroups
Issue Type: Bug
Reporter: Alan Field
Assignee: Bela Ban
Fix For: 3.6.8, 4.0
I was attempting to use FILE_PING as the discovery protocol with Infinispan server and
the following configuration:
{noformat}
<protocol type="FILE_PING">
<property
name="location">${jgroups.file.dir:/Users/afield/Documents}</property>
</protocol>
{noformat}
However, the following exceptions occur when I try to start the server:
{noformat}
15:34:41,662 INFO [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (MSC
service thread 1-11) ISPN000078: Starting JGroups Channel
15:34:41,675 ERROR [org.jgroups.protocols.FILE_PING] (MSC service thread 1-11) attempt to
write data failed at clustered : clustered.list: java.io.FileNotFoundException:
/Users/afield/Documents/clustered/3e5f03c6-c297-474a-cb72-1ca0841f8e5c.afield-osx/clustered.list
(No such file or directory)
at java.io.FileOutputStream.open0(Native Method) [rt.jar:1.8.0_72]
at java.io.FileOutputStream.open(FileOutputStream.java:270) [rt.jar:1.8.0_72]
at java.io.FileOutputStream.<init>(FileOutputStream.java:213) [rt.jar:1.8.0_72]
at java.io.FileOutputStream.<init>(FileOutputStream.java:162) [rt.jar:1.8.0_72]
at org.jgroups.protocols.FILE_PING.write(FILE_PING.java:294)
[jgroups-3.6.3.Final-redhat-4.jar:3.6.3.Final-redhat-4]
at org.jgroups.protocols.FILE_PING.findMembers(FILE_PING.java:116)
[jgroups-3.6.3.Final-redhat-4.jar:3.6.3.Final-redhat-4]
at org.jgroups.protocols.Discovery.findMembers(Discovery.java:240)
[jgroups-3.6.3.Final-redhat-4.jar:3.6.3.Final-redhat-4]
at org.jgroups.protocols.Discovery.down(Discovery.java:380)
[jgroups-3.6.3.Final-redhat-4.jar:3.6.3.Final-redhat-4]
at org.jgroups.protocols.FILE_PING.down(FILE_PING.java:107)
[jgroups-3.6.3.Final-redhat-4.jar:3.6.3.Final-redhat-4]
at org.jgroups.protocols.MERGE3.down(MERGE3.java:255)
[jgroups-3.6.3.Final-redhat-4.jar:3.6.3.Final-redhat-4]
at org.jgroups.protocols.FD_SOCK.down(FD_SOCK.java:360)
[jgroups-3.6.3.Final-redhat-4.jar:3.6.3.Final-redhat-4]
at org.jgroups.protocols.FD_ALL.down(FD_ALL.java:233)
[jgroups-3.6.3.Final-redhat-4.jar:3.6.3.Final-redhat-4]
at org.jgroups.protocols.VERIFY_SUSPECT.down(VERIFY_SUSPECT.java:92)
[jgroups-3.6.3.Final-redhat-4.jar:3.6.3.Final-redhat-4]
at org.jgroups.protocols.pbcast.NAKACK2.down(NAKACK2.java:589)
[jgroups-3.6.3.Final-redhat-4.jar:3.6.3.Final-redhat-4]
at org.jgroups.protocols.UNICAST3.down(UNICAST3.java:669)
[jgroups-3.6.3.Final-redhat-4.jar:3.6.3.Final-redhat-4]
at org.jgroups.protocols.pbcast.STABLE.down(STABLE.java:347)
[jgroups-3.6.3.Final-redhat-4.jar:3.6.3.Final-redhat-4]
at org.jgroups.protocols.pbcast.ClientGmsImpl.joinInternal(ClientGmsImpl.java:76)
[jgroups-3.6.3.Final-redhat-4.jar:3.6.3.Final-redhat-4]
at org.jgroups.protocols.pbcast.ClientGmsImpl.join(ClientGmsImpl.java:41)
[jgroups-3.6.3.Final-redhat-4.jar:3.6.3.Final-redhat-4]
at org.jgroups.protocols.pbcast.GMS.down(GMS.java:1087)
[jgroups-3.6.3.Final-redhat-4.jar:3.6.3.Final-redhat-4]
at org.jgroups.protocols.FlowControl.down(FlowControl.java:353)
[jgroups-3.6.3.Final-redhat-4.jar:3.6.3.Final-redhat-4]
at org.jgroups.protocols.FRAG2.down(FRAG2.java:136)
[jgroups-3.6.3.Final-redhat-4.jar:3.6.3.Final-redhat-4]
at org.jgroups.stack.ProtocolStack.down(ProtocolStack.java:1038)
[jgroups-3.6.3.Final-redhat-4.jar:3.6.3.Final-redhat-4]
at org.jgroups.JChannel.down(JChannel.java:791)
[jgroups-3.6.3.Final-redhat-4.jar:3.6.3.Final-redhat-4]
at org.jgroups.JChannel._connect(JChannel.java:564)
[jgroups-3.6.3.Final-redhat-4.jar:3.6.3.Final-redhat-4]
at org.jgroups.JChannel.connect(JChannel.java:294)
[jgroups-3.6.3.Final-redhat-4.jar:3.6.3.Final-redhat-4]
at org.jgroups.JChannel.connect(JChannel.java:279)
[jgroups-3.6.3.Final-redhat-4.jar:3.6.3.Final-redhat-4]
at
org.infinispan.remoting.transport.jgroups.JGroupsTransport.startJGroupsChannelIfNeeded(JGroupsTransport.java:208)
[infinispan-core-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
at
org.infinispan.remoting.transport.jgroups.JGroupsTransport.start(JGroupsTransport.java:199)
[infinispan-core-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_72]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[rt.jar:1.8.0_72]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[rt.jar:1.8.0_72]
at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_72]
at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:176)
[infinispan-commons-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
at
org.infinispan.factories.AbstractComponentRegistry$PrioritizedMethod.invoke(AbstractComponentRegistry.java:870)
[infinispan-core-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
at
org.infinispan.factories.AbstractComponentRegistry.invokeStartMethods(AbstractComponentRegistry.java:639)
[infinispan-core-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
at
org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:628)
[infinispan-core-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
at
org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:531)
[infinispan-core-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
at
org.infinispan.factories.GlobalComponentRegistry.start(GlobalComponentRegistry.java:238)
[infinispan-core-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
at
org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:583)
[infinispan-core-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:549)
[infinispan-core-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:420)
[infinispan-core-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:434)
[infinispan-core-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
at
org.jboss.as.clustering.infinispan.DefaultEmbeddedCacheManager.getCache(DefaultEmbeddedCacheManager.java:89)
[infinispan-server-infinispan-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
at
org.jboss.as.clustering.infinispan.DefaultEmbeddedCacheManager.getCache(DefaultEmbeddedCacheManager.java:80)
[infinispan-server-infinispan-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
at org.infinispan.server.infinispan.SecurityActions$4.run(SecurityActions.java:105)
[infinispan-server-infinispan-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
at org.infinispan.server.infinispan.SecurityActions$4.run(SecurityActions.java:102)
[infinispan-server-infinispan-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
at org.infinispan.security.Security.doPrivileged(Security.java:76)
[infinispan-core-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
at
org.infinispan.server.infinispan.SecurityActions.doPrivileged(SecurityActions.java:49)
[infinispan-server-infinispan-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
at org.infinispan.server.infinispan.SecurityActions.startCache(SecurityActions.java:110)
[infinispan-server-infinispan-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
at org.jboss.as.clustering.infinispan.subsystem.CacheService.start(CacheService.java:85)
[infinispan-server-infinispan-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1980)
[jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1913)
[jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[rt.jar:1.8.0_72]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[rt.jar:1.8.0_72]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_72]
{noformat}
From looking at the code, FILE_PING creates the {{/Users/afield/Documents/clustered}}
directory, but the problem is that the {{local_addr}} for the host is
{{afield-osx/clustered}}, so {{destination}} is defined as
{{75b5c5b8-014d-26ff-c400-5398a96ad3f4.afield-osx/clustered.list}} when
{{addressToFilename()}} is called and then the subsequent write fails. File.separator need
to be removed or replaced in the {{destination}} variable.