opencaesar / owl-tools

A set of analysis tools for OWL
Apache License 2.0
5 stars 1 forks source link

start-fuseki needs a more robust logic to handle the case of a stale fuseki.pid file. #33

Open NicolasRouquette opened 2 years ago

NicolasRouquette commented 2 years ago

Description

A clear and concise description of what the bug is.

The gradle task skips if there is a fuseki.pid file; however, that file could be stale. Need to improve the logic to read the fuseki.pid file and check whether there exists a process with that PID and whether the Fuseki server is still alive. If both conditions are true, then it is OK to skip starting Fuseki.

Steps to Reproduce

Steps to reproduce the behavior:

Here is an example of a log:

> Task :startFuseki UP-TO-DATE
> Task :downloadDependencies UP-TO-DATE
> Task :buildProjectPrototypes UP-TO-DATE
> Task :omlToOwl UP-TO-DATE
> Task :owlReason UP-TO-DATE
> Task :owlLoad FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':owlLoad'.
> org.apache.http.conn.HttpHostConnectException: Connect to localhost:3030 [localhost/127.0.0.1] failed: Connection refused (Connection refused)

In the above, there are two stale files: .fuseki/fuseki.pid and .fuseki/fuseki.log

The Gradle task up-to-date logic interprets this state as an indication that the task has already been executed when in fact there is no Fuseki server running.

Expected Behavior

A clear and concise description of what should be the expected behavior.

Additional Context

Enter any other details such as dependencies, environment, examples, etc.

Relevant screenshots

If applicable, add screenshots to help illustrate the issue.