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
blastdbcmd
binary
Diagnosing the issue
The issue was two-fold:
- SequenceServer was running as a Phusion Passenger app initialized by an arbitrarily named user via the
PassengerUser
option in thehttpd.conf
file. The user should have beenapache
, 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
blastdbcmd
binary. 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.