Log version mismatch

Symptoms

Opening a session or a log file created by IO Ninja version prior to 3.10.0 yields a warning message like this:

Log version mismatch:
Engine version: 3.10.0
File version: 3.0.2

Details

IO Ninja version 3.10.0 introduced a breaking change in the binary format of .njlog files, so it’s no longer compatible with files created by previous releases. Record codes in log files version 3.10.x and above are globally unique 64-bit integers – previously, record codes were 32-bit integers unique only within the corresponding IO Ninja session or layer plugin.

Conversion is possible, but it involves processing and overwriting the whole log file; it also requires some database to provide a mapping between old and new record codes. This last requirement is what prevents a straightforward automated conversion – there can always be user-defined session or layer plugin modifications which would introduce new record codes or redefine existing ones.

Therefore, we don’t attempt to convert and overwrite the original log file automatically. Instead, the original file is saved as *.njlog.bak and a new empty log file is created. If the original file contained some important data worth recovering, it could be manually converted as described in the next section.

Conversion

There is an internal conversion utility (plus a record code database for standard plugins) which enables recovering all the data from log files recorded by previous releases of IO Ninja. These tools are currently at beta stages and as such, not publicly available. Besides, as mentioned earlier, the record code database may require some manual tweaks for a particular .njlog file.

Please, contact IO Ninja support at support@ioninja.com, provide us with some basic information about the log file (the version of IO Ninja, the main session plugin, layers if any, etc.), and we will send you the conversion utility and assist you with preparing a proper mapping of record codes.