The public-facing source code browsing engines are all running on src.mit.edu.  Currently, there's also an instance of Artifactory, but this is going to be split off onto its own server once the new world order is in place.

There are two server stacks running, the Fisheye server (which is their own hacked-up Tomcat running out of /home/fisheye and listening on port 8060, its default) and a conventional apache+tomcat setup that serves up Artifactory and OpenGrok.  It's all linked to from the static html page served by apache from its htdoc directory.  There are now rewrites in places that provide moderately seamless access via the obvious URLs: http://src.mit.edu/fisheye, http://src.mit.edu/opengrok, etc.

If it breaks, the brutally simple approach:

Try restarting; "/etc/init.d/web stop" will take down all of the above services, and "... start" will bring them all back.  Some of them take quite a while to shut down, so make sure there are no running java processes before you restart.

If OpenGrok stops updating:

Every other hour, cron runs /home/opengrok/update-indices.sh, which logs to .../update-indices.log.  All it's doing is a subversion checkout followed by a run of the update script; it should be fairly bombproof.  Check the aforementioned log file for errors.

If Fisheye stops updating:

If it's not running at all, restart it per the above.  Otherwise, everything is done via the GUI; the administration site is here: http://src.mit.edu/fisheye/admin/, and you'll need the admin password, which is noted in the AMIT password repository.

When is an update not an update?

Currently, fisheye and opengrok provide an indexed krb5 repository, via the public repository.  If the servers seem to be running OK but don't have current data, it's possible that that krb5 public repository synchronization has broken.  To check this, run "svn info svn://anonsvn.mit.edu/krb5".  That will tell you what's current on the public server, and can be contrasted with the real read-write repository with (if you have access) "svn info svn+ssh://svn.mit.edu/krb5".

An example of what it looks like when things work; the critical thing to do is make sure they've both got the most current revision:

$ svn info svn://anonsvn.mit.edu/krb5
Path: krb5
URL: svn://anonsvn.mit.edu/krb5
Repository Root: svn://anonsvn.mit.edu/krb5
Repository UUID: dc483132-0cff-0310-8789-dd5450dbe970
Revision: 21454
Node Kind: directory
Last Changed Author: tlyu
Last Changed Rev: 21454
Last Changed Date: 2008-12-15 16:04:51 -0500 (Mon, 15 Dec 2008)

$ svn info svn+ssh://svn.mit.edu/krb5
Path: krb5
URL: svn+ssh://svn.mit.edu/krb5
Repository Root: svn+ssh://svn.mit.edu/krb5
Repository UUID: dc483132-0cff-0310-8789-dd5450dbe970
Revision: 21454
Node Kind: directory
Last Changed Author: tlyu
Last Changed Rev: 21454
Last Changed Date: 2008-12-15 16:04:51 -0500 (Mon, 15 Dec 2008)

You can also compare these with the top entry in the "Recent Changelog" reported here: http://src.mit.edu/fisheye/browse/krb5; it's a bit less straightforward with opengrok, but if you go to the main site here: http://src.mit.edu/opengrok/ and search on the most recent revision number, you'll see if it knows about it.  You can also log in to src.mit.edu and run "svn info /home/opengrok/src/krb5".  Note that fisheye updates very quickly but that opengrok does so only on a two-hour cycle, so some version skew is possible and expected.



Adding browsable repositories:

For Fisheye, this is easy, it's all by-the-book using the GUI. Mostly you just need the repository URL. Note that we only want to run it against public repositories for now.

Each repository indexed by opengrok is served by a separate web application running on isda-maven1.mit.edu.  To deploy a new application, you need to:

  1. check out the source tree under /home/opengrok/src/<name>
  2. make a copy of the indexing script that references the new names
  3. index that source tree into /home/opengrok/data/<name>
  4. add checkout/index maintenance to the cron job
  5. add apache httpd.conf mod_jk glue for the new application
  6. configure an instance of the web application to refer to the source and data directories defined above
  7. install it in the source subdirectory of tomcat's webapp directory
  8. add apache httpd.conf mod_jk glue for the new application
  9. restart tomcat and httpd

Modifying opengrok applications:

The location for .war development for OpenGrok applications is in /home/opengrok/wars.  You may want to modify the application to change, for instance, the appearance of header banners, icons, links, or whatever.  Let's say you wanted to change the krb5 opengrok setup: you'd run:

  1. cd /home/opengrok/wars/krb5
  2. [edit stuff]
  3. zip -r ../krb5.war *
  4. cp -f ../krb5.war /home/apache-tomcat-5.5.25/webapps/

Tomcat will automatically notice the new .war within a few seconds and unpack it; no further action is needed.

  • No labels