oracle / opengrok

OpenGrok is a fast and usable source code search and cross reference engine, written in Java
http://oracle.github.io/opengrok/
Other
4.34k stars 745 forks source link

Failed to get xref file for projects not checked out from source repository #2774

Closed dkmorgan closed 5 years ago

dkmorgan commented 5 years ago

I recently tried upgrading from v1.1-rc24 to v1.2.8. I am facing an issue which did not occur with v1.1-rc24.

I have a mixture of projects checked out from a source code repository and ones that are not:

[source_root] +--- [project_a] <--- Checked out from SVN repository +--- [project_b] <--- Simply extracted from a tarball +--- ...

I have created the index with the following command: java -Djava.util.logging.config.file=/path/to/log/directory/logging.properties -jar /path/to/jar/opengrok.jar -v -c /usr/local/bin/ctags -s /path/to/source_root -d /path/to/data/directory -H -P -S -G -W /path/to/config/directory/configuration.xml -U http://localhost:2425/opengrok/source

After I perform a search from the webapp page, I can select and browse through the source code for the projects that are checked out from a source code repository. (project_a) However, when I select and browse through the source code which was extracted from a tarball, I get a "Failed to get xref file" error. (project_b) The 'index' and 'xref' directories for project_b seem to be constructed fine and I had no issues with v1.1-rc24 with the same source code directory structure.

I would appreciate any advice on tracking down what the issue is.

dkmorgan commented 5 years ago

OK, I tried recreating the index without the "-H -S -G" options and the error no longer occurs. So it looks like enabling the history option is causing problems with projects that haven't been checked out from a source code repository. The history option "OPENGROK_GENERATE_HISTORY=on" did not cause any problems with v1.1-rc24 with the mixture of projects stated in my original post.

vladak commented 5 years ago

Any related exceptions in the container server logs ? (e.g. catalina.out for Tomcat)

vladak commented 5 years ago

The OPENGROK_GENERATE_HISTORY shell script env var basically governed the use of -r and -H options to be used as Indexer arguments. In your case it resulted in -r on -H. See https://github.com/oracle/opengrok/wiki/Python-scripts-transition-guide for other shell script tunables.

Now, I am not sure how xrefs would relate to history being on/off.

Also, are you really running the application on port 2425 ? In recent versions of OpenGrok the -U argument is URL that is the same as the one used by the web application and is used to send RESTful API request to.

dkmorgan commented 5 years ago

Any related exceptions in the container server logs ? (e.g. catalina.out for Tomcat)

There were some errors/warnings in the log, but nothing really related to the issue I was facing.

Also, are you really running the application on port 2425 ? In recent versions of OpenGrok the -U argument is URL that is the same as the one used by the web application and is used to send RESTful API request to.

Thank you for pointing this out. I completely misunderstood that portion of the command and assumed it was a combination of "OPENGROK_WEBAPP_CFGADDR" and "OPENGROK_WEBAPP_CONTEXT" which I was setting under v1.1-rc24.

I have created the index with the following command and all is working fine now. I changed the port to '8080' and added back the "-H -S -G" options: java -Djava.util.logging.config.file=/path/to/log/directory/logging.properties -jar /path/to/jar/opengrok.jar -v -c /usr/local/bin/ctags -s /path/to/source_root -d /path/to/data/directory -H -P -S -G -W /path/to/config/directory/configuration.xml -U http://localhost:8080/opengrok/source

Will read through the documentation thoroughly so that I don't end up asking another unnecessary question. This question can be closed. Thanks again for your response and tips.