Opened 15 months ago

Last modified 8 months ago

#15752 assigned enhancement

Better reporting for webservices

Reported by: Zach Pearson Owned by: Zach Pearson
Priority: moderate Milestone:
Component: Web Services Version:
Keywords: Cc: chimerax-programmers
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The recent BLAST outage really illustrates the need for more information to be sent between ChimeraX and webservices. Webservices knows if a service is down, and there are a few ways ChimeraX could get and react to this information:

  • We could have a long running job that queries webservices every N (minutes|hours) to see what services are online
  • Tools could check the status of just their services when they start and disable themselves if the service is down
  • Some combination of the above: a central registry for service statuses that tools check

More dynamism on the client side would prevent a lot of user confusion.

Change History (3)

comment:1 by Zach Pearson, 15 months ago

If we went with a central status checker I was thinking of putting its GUI underneath the web proxy settings tab in ChimeraX -> Preferences.

comment:2 by Tom Goddard, 15 months ago

I think some small improvement would be helpful. When the BLAST databases got deleted on the server ChimeraX reported an error like (example from #15719)

> blastprotein #1/A database uniref100 cutoff 1e-3 matrix BLOSUM62 maxSeqs 100
> version 1 name bp3

Webservices job id: HBJRW2SLI5R4YPE5  
BlastProtein failed: 'bytes' object has no attribute 'items'  
Parsing BlastProtein results failed: 'NoneType' object has no attribute 'keys'  

This gave no clear indication to the user or to us what went wrong. To us it meant the ChimeraX BLAST client code failed to parse the output from the server. So the obvious fix is the client needs to correctly handle an error from the server. What should have happened is the BLAST client would say "BlastProtein failed due to an error on the server: [Python traceback of server error]". The Python traceback from the server would say something like "File not found: /databases/mol/blast/db/pdbaa.pos". If the code gave this informative error message everyone would have the clearest idea where the problem happened, and it would save us all time.

comment:3 by Eric Pettersen, 8 months ago

On the ChimeraX wiki, in the Usage section, there is an "Opal web service activity" link which is obviously dead. It would be nice if that were replaced with a "Web service activity" link which showed some usage/activity information about our current web services.

Note: See TracTickets for help on using tickets.