Menu

#2882 "Reload all data" should reload metadata as well

nextrelease
open
nobody
None
5
2 days ago
2026-08-28
No

Ivar reports that the metadata is not reloaded when "reload all data" is invoked. It should be.

Discussion

  • Jeremy Faden

    Jeremy Faden - 7 days ago

    The experiment I tried was to have two jpegs in a directory, copying one or the other to picture.jpg, then using ctrl-L to reload, or using [menubar]->Tools->"Reload All Data" to confirm that metadata is not being reloaded.

    It is being reloaded, however, so maybe there's something different that Ivar is doing. Interestingly, if I switch file, the metadata tab folds for a longer period than if the file is left alone. So it seems like there may be another cache which is involved.

    I'm going to continue with the release, but I'll leave this ticket open until I talk to Ivar.

     
  • Jeremy Faden

    Jeremy Faden - 2 days ago

    I finally met with Ivar and we did verify that changing CDF files does not update. See sftp://draylax.physics.uiowa.edu:/home/jbf/ct/autoplot/u/2026/ivar/20260903/

    1. cp ts1_l2_ace_def_20260401_v1.1.0.cdf to file.cdf
    2. plot file.cdf?Epoch
    3. cp ts2_l2_ace_def_20260401_v1.1.1.cdf to file.cdf
    4. reload all data

    The metadata tab does not update.

     
  • Jeremy Faden

    Jeremy Faden - 2 days ago

    The problem was the CDF reader had a feature that it would try to only read the attributes once, making it stateful when other codes expect them to be stateless. Reading the metadata takes less than a millisecond and is not worth caching.

    However this showed me a potential error, where when the metadata was cached it would do actions which did not occur when reading for the first time. This needs further study.

     
  • Jeremy Faden

    Jeremy Faden - 2 days ago

    I've fixed the CDF metadata as well.

     
  • Jeremy Faden

    Jeremy Faden - 2 days ago

    Note that any data source which maintains a state will potentially have this problem. A better solution might be to have "reload" create a new DataSource object.