Dremio upgrade fails to verify version in DatasetVersion.java

In file …

./dremio-oss/services/namespace/src/main/java/com/dremio/service/namespace/dataset/DatasetVersion.java

this function is used to verify version …

private static long parseLong(String version) {
    try {
      return Long.parseLong(version, 16);
    } catch (NumberFormatException e) {
      throw new IllegalArgumentException("invalid version: " + version);
    }
  }

this function does not complete as expected when running dremio-admin upgade.

for reference, the upgrade attempt was made using the RPM install version from 2.0.5 to 2.1.4

the instructions for upgrade were followed from …

https://docs.dremio.com/advanced-administration/upgrade/rpm.html

the error received was …

Dremio java.lang.IllegalArgumentException: invalid version: Filter"

This fail required reverting the installed version and restoring Dremio data from the db backup (/var/lib/dremio/db)

Please let me know if I can provide additional details about this issue. Thank you!

Sorry you are running into this problem. Can you describe this Filter object? Is it a VDS? If yes, do you recall what source it is reading from? Can you recall the query? Can you also share your server.log & server.out? Thanks

I was assuming ‘Filter’ was in the error because the value of the variable version was incorrectly determined by the code in file ./dremio-oss/services/namespace/src/main/java/com/dremio/service/namespace/dataset/DatasetVersion.java

line …

throw new IllegalArgumentException("invalid version: " + version);

returns …

java.lang.IllegalArgumentException: invalid version: Filter"

@Eric_Lakich can you provide any information I requested above? Additionally, we have internally found similiar behavior when the dataset name contains specific symbols, specifically / Does this VDS Filter or others dataset names contain the symbol / ?

Anthony, we currently have 42 users so accessing the virtual datasets from the UI is not practical. Is there a CLI or other programmatic method I could use to get the info you’ve requested?

https://docs.dremio.com/advanced-administration/querying-metadata.html#views

Try “TABLES” or VIEWS

Running …

select * from INFORMATION_SCHEMA.VIEWS

Causes a new error …

2018-09-10 21:59:36,654 [out-of-band-observer] ERROR c.d.service.jobs.QueryProfileParser - Failed to parse physical plan for query {{ query plan uuid }}

Do both select * from INFORMATION_SCHEMA."TABLES" and select * from INFORMATION_SCHEMA.VIEWS give you the same error?

Since it seems like you ran into a failed upgrade, are you running the query above with the old db (I assume you did a backup) with old 2.0.* version of Dremio?