Skip to content

Property file name is incorrectly appended to the script working directory in TestDriver.java #13

@fventuri-availity

Description

@fventuri-availity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions