Over the course of the weekend of November 17–18 of 2018 and the subsequent working week that follows, all BLAST-related tools on Lotus Base became inaccessible. The affected modules were:
- Lotus BLAST, which runs SequenceServer v1.0.9 as a Passenger app
- The Sequence Retrieval tool (SeqRet), which relies on being able to sniff out BLAST database metadata by executing the
Diagnosing the issue
The issue was two-fold:
- SequenceServer was running as a Phusion Passenger app initialized by an arbitrarily named user via the
PassengerUseroption in the
httpd.conffile. The user should have been
apache, so that the processes spawned by Apache will have the correct read permissions to access all app binaries.
- The Sequence Retrieval tool calls an internal API endpoint which relies on being able to execute the
blastdbcmdbinary. However, since the binary belongs to a different user group, the API wil fail and return an empty array: this causes PHP to throw an error when attempting to display BLAST database-related metadata.
What was done to fix it?
By updating the read permissions for the BLAST binaries and changing the
PassengerUser for Sequence Server fixes the issue.