Hello, We've been seeing these intermittent netconf failures on jenkins:
Caused by: java.lang.IllegalArgumentException: Unable to create cache directory at cache/schema at com.google.common.base.Preconditions.checkArgument(Preconditions.java:210) at org.opendaylight.yangtools.yang.model.repo.util.FilesystemSchemaSourceCache.<init>(FilesystemSchemaSourceCache.java:74) at org.opendaylight.netconf.topology.AbstractNetconfTopology.<clinit>(AbstractNetconfTopology.java:149) In FilesystemSchemaSourceCache, it does this: if (!storageDirectory.exists()) { checkArgument(storageDirectory.mkdirs(), "Unable to create cache directory at %s", storageDirectory); } mkdirs returns false if the dir/file already exists. I think there's a race condition where some other code on another thread interleaves and creates the dir in between the exists and mkdirs calls. As a workaround, I submitted https://git.opendaylight.org/gerrit/#/c/72775/ that adds retries if FilesystemSchemaSourceCache throws an IAE and also no longer fails class initialization on failure. So even if there's another strange reason mkdirs returns false (eg permissions although highly unlikely), at least it won't fail SFT. Assuming my theory is correct, changing FilesystemSchemaSourceCache to: checkArgument(storageDirectory.mkdirs() || storageDirectory.exists(), "Unable to create cache directory at %s", storageDirectory); would alleviate the issue. I'll push that change to yangtools as well although it won't be available until the next release. Tom
_______________________________________________ controller-dev mailing list controller-dev@lists.opendaylight.org https://lists.opendaylight.org/mailman/listinfo/controller-dev