-
Notifications
You must be signed in to change notification settings - Fork 12
Description
Line 369 in class eu.ldbc.semanticpublishing.TestDriver (https://github.com/ldbc/ldbc_spb_bm_2.0/blob/master/src/eu/ldbc/semanticpublishing/TestDriver.java#L369) incorrectly appends the name of the property file to the script working directory:
ShellUtil.execute(sciptsPath + " " + propertiesFile, file.getName(), true);
(compare that with the definition of the method ShellUtil.execute() in eu.ldbc.semanticpublishing.util.ShellUtil.java)
That line builds a directory path that looks something like this 'dist/data/scripts/postLoad test.properties', which of course triggers a FileNotFound exception during the execution of the benchmark.
There are a couple of ways to fix this problem:
-
in order to pass the property file to the postLoad shell scripts, the call to 'Runtime.getRuntime().exec()' inside SheelUtil.java needs to be changed to pass a String[] (instead of just a String) as its first argument - that String array should have the executable path as its first element, and its arguments (namely the name of the property file) as its next elements. This in turn might require the definition of the execute() method to be changed accordingly; since I saw that that execute() method is also called in other places in TestDriver.java, one option could be to overload that execute() method in ShellUtil.java (the current one with just a 'String', plus a new one where a 'String[]' is passed with its arguments)
-
as a quick and dirty workaround (which is what I did last night to try to get the benchmark to complete without exceptions) I just removed the code that incorrectly appends the property file name to the script working directory in TestDriver.java (lines 368 and 369), like this:
System.out.println("\texecuting " + scriptsSubFolder + " script: " + file.getName());
ShellUtil.execute(sciptsPath, file.getName(), true);
and in that case I had to hardcode the name of the property file in the shell scripts inside the 'postLoad' directory.
Also please note that the name of the variable 'sciptsPath' in TestDriver.java is spelled incorrectly - it should have been 'scriptsPath' instead.
Thanks,
Franco Venturi