Helioviewer-Project / api

The API for Helioviewer Project Services
Other
7 stars 14 forks source link

getMovieStatus fails while generating a Movie #81

Closed nimatraore closed 2 years ago

nimatraore commented 2 years ago

Due to recent update on helioviewer.ias.u-psud.fr, Movie generation now fails with the following notification:

"Sorry, we were unable to create the movie you requested. This usually means that there are not enough images for the time range requested. Please try adjusting the observation date or movie duration and try creating a new movie."

The script crashes while calling getMovieStatus, it seems that the database does not return anything. Below is the displayed message:

{"error":"Unable to find the requested movie: 0","errno":24}

What am I missing here ?

dgarciabriseno commented 2 years ago

It looks like the movie isn't getting inserted into the database when it's created. This is shown by the fact that multiple calls to queueMovie return the same id. And the "unable to find movie: 0" means it's looking for a movie with ID "0" in the database.

In MovieDatabase.php in the function insertMovie, add a log to the try/catch block around line 126, that should give more info about what's going on.

This is what the movies table should look like:

mysql> describe movies;
+-----------------------------+-------------------+------+-----+-------------------+-------------------+
| Field                       | Type              | Null | Key | Default           | Extra             |
+-----------------------------+-------------------+------+-----+-------------------+-------------------+
| id                          | int unsigned      | NO   | PRI | NULL              | auto_increment    |
| timestamp                   | timestamp         | NO   | MUL | CURRENT_TIMESTAMP | DEFAULT_GENERATED |
| reqStartDate                | datetime          | NO   |     | NULL              |                   |
| reqEndDate                  | datetime          | NO   |     | NULL              |                   |
| reqObservationDate          | datetime          | YES  |     | NULL              |                   |
| imageScale                  | float unsigned    | NO   |     | NULL              |                   |
| regionOfInterest            | polygon           | NO   |     | NULL              |                   |
| maxFrames                   | smallint unsigned | NO   |     | NULL              |                   |
| watermark                   | tinyint unsigned  | NO   |     | NULL              |                   |
| dataSourceString            | varchar(255)      | NO   |     | NULL              |                   |
| dataSourceBitMask           | bigint unsigned   | YES  |     | NULL              |                   |
| eventSourceString           | varchar(1024)     | YES  |     | NULL              |                   |
| eventsLabels                | tinyint unsigned  | NO   |     | 0                 |                   |
| movieIcons                  | tinyint unsigned  | NO   |     | 0                 |                   |
| followViewport              | tinyint(1)        | YES  |     | 0                 |                   |
| scale                       | tinyint unsigned  | NO   |     | 0                 |                   |
| scaleType                   | varchar(12)       | YES  |     | earth             |                   |
| scaleX                      | float             | YES  |     | 0                 |                   |
| scaleY                      | float             | YES  |     | 0                 |                   |
| numLayers                   | tinyint unsigned  | YES  |     | NULL              |                   |
| queueNum                    | smallint unsigned | YES  |     | NULL              |                   |
| frameRate                   | float unsigned    | YES  |     | NULL              |                   |
| movieLength                 | float unsigned    | YES  |     | NULL              |                   |
| startDate                   | datetime          | YES  | MUL | NULL              |                   |
| endDate                     | datetime          | YES  | MUL | NULL              |                   |
| numFrames                   | int unsigned      | YES  |     | NULL              |                   |
| width                       | smallint unsigned | YES  |     | NULL              |                   |
| height                      | smallint unsigned | YES  |     | NULL              |                   |
| buildTimeStart              | timestamp         | YES  |     | NULL              |                   |
| buildTimeEnd                | timestamp         | YES  |     | NULL              |                   |
| size                        | tinyint           | NO   |     | 0                 |                   |
| switchSources               | tinyint(1)        | NO   |     | 0                 |                   |
| celestialBodiesLabels       | varchar(372)      | NO   |     |                   |                   |
| celestialBodiesTrajectories | varchar(372)      | NO   |     |                   |                   |
+-----------------------------+-------------------+------+-----+-------------------+-------------------+
nimatraore commented 2 years ago

Great! There were missing columns switchSources, celestialBodiesLabels and celestialBodiesTrajectories. After adding them in the table, the movie generation works fine!

nimatraore commented 2 years ago

Thank you very much!