Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove GEMELMap from CMSSW, its an old format that's not used #33524

Closed
wants to merge 1 commit into from

Conversation

watson-ij
Copy link
Contributor

PR description:

Remove GEMELMap and related classes (GEMELMapRcd, GEMROMap) which were used for storing the electronics map for GEM before the final emap classes were made (the classes that replace the ones deleted here are GEMeMap and GEMROMapping). The GEMELMapRcd was recently removed from AlCaDB #33507 so there should be no more references to these classes.

@jshlee
@hyunyong

PR validation:

Checked the commit with the April 18 and 25 nightlies, running upgrade workflow 34261.0. The April 18th nightly (before Rcd removal) fails due to trying to load GEMELMapRcd from the CondDB, while the April 25th nightly succeeds.

if this PR is a backport please specify the original PR and why you need to backport that PR:

Before submitting your pull requests, make sure you followed this checklist:

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-33524/22283

  • This PR adds an extra 44KB to repository

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @watson-ij (Ian J. Watson) for master.

It involves the following packages:

CondCore/GEMPlugins
CondFormats/DataRecord
CondFormats/GEMObjects

@malbouis, @yuanchao, @christopheralanwest, @cmsbuild, @tlampen, @ggovi, @pohsun, @francescobrivio can you please review it and eventually sign? Thanks.
@jshlee, @mmusich, @seemasharmafnal, @tocheng this is something you requested to watch as well.
@silviodonato, @dpiparo, @qliphy you are the release manager for this.

cms-bot commands are listed here

@francescobrivio
Copy link
Contributor

test parameters:

  • workflow = 34261.0

@francescobrivio
Copy link
Contributor

@cmsbuild please test

@francescobrivio
Copy link
Contributor

@watson-ij are you also planning a backport to 113X? The backport for #33507 to 113X has also been merged (#33509)

@watson-ij
Copy link
Contributor Author

@watson-ij are you also planning a backport to 113X? The backport for #33507 to 113X has also been merged (#33509)

I think the backport is for the other issue in that PR. I don't think there's any particular need to backport this removal.

@francescobrivio
Copy link
Contributor

@watson-ij are you also planning a backport to 113X? The backport for #33507 to 113X has also been merged (#33509)

I think the backport is for the other issue in that PR. I don't think there's any particular need to backport this removal.

The GEMELMap tags have also been removed in the backport to 113X, so for cleanliness I think it's better to backport these changes as well. I don't know what the other @cms-sw/alca-l2 members think?

@cmsbuild
Copy link
Contributor

-1

Failed Tests: RelVals
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b3b90d/14575/summary.html
COMMIT: ddf2c03
CMSSW: CMSSW_12_0_X_2021-04-25-2300/slc7_amd64_gcc900
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/33524/14575/install.sh to create a dev area with all the needed externals and cmssw changes.

RelVals

@francescobrivio
Copy link
Contributor

-1

Failed Tests: RelVals
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b3b90d/14575/summary.html
COMMIT: ddf2c03
CMSSW: CMSSW_12_0_X_2021-04-25-2300/slc7_amd64_gcc900
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/33524/14575/install.sh to create a dev area with all the needed externals and cmssw changes.

RelVals

The failure here is:
ValueError: Undefined workflows: 34261.0
I took the number from the PR description without checking if it was available.
@watson-ij can you clarify which workflow did you check in your PR validation? Thanks!

@watson-ij
Copy link
Contributor Author

@francescobrivio Ah, that was a typo sorry. It should be the upgrade workflow 34621.0 that I tested.

@watson-ij
Copy link
Contributor Author

Though also, I was just reporting that as the workflow I used for to test locally, any workflow with GEM could be used to test.

@francescobrivio
Copy link
Contributor

Though also, I was just reporting that as the workflow I used for to test locally, any workflow with GEM could be used to test.

Ok! Then I guess the standard matrix tests should be fine.
Just to be sure I will include wf 138.1 which processes data from a MWGR run in which GEM was included.

@francescobrivio
Copy link
Contributor

test parameters:

  • workflow = 138.1

@francescobrivio
Copy link
Contributor

@cmsbuild please test

@francescobrivio
Copy link
Contributor

+alca

  • removed unused GEMELMap classes and implementations

@ggovi
Copy link
Contributor

ggovi commented Apr 28, 2021

After discussion among the AlCaDB conveners, we believe that the back-ward compatibility of the old GTs including the concerned classes should be preserved, irrespectively from the status of the underlying consuming code.
Therefore, we propose to leave unchanged the classes. A discussion focused on how to properly document the obsolete classes can follow, involving the CMSSW release experts...

@ggovi
Copy link
Contributor

ggovi commented Apr 28, 2021

-1

@francescobrivio
Copy link
Contributor

-alca

@mmusich
Copy link
Contributor

mmusich commented Apr 28, 2021

After discussion among the AlCaDB conveners, we believe that the back-ward compatibility of the old GTs including the concerned classes should be preserved, irrespectively from the status of the underlying consuming code.
Therefore, we propose to leave unchanged the classes. A discussion focused on how to properly document the obsolete classes can follow, involving the CMSSW release experts...

@ggovi, @francescobrivio
I am a bit confused...
Why for example you've let this PR #31729 to enter CMSSW (it did essentially the same things) with the great ensuing pain it caused downstream, while blocking this one?
Please explain it to me.
Thanks,

@davidlange6
Copy link
Contributor

davidlange6 commented Apr 28, 2021 via email

@mmusich
Copy link
Contributor

mmusich commented Apr 28, 2021

Which sort of backwards compatibility is this preserving?

After you remove the record you can't read the old GT (with the payloads associated to the removed record) in the new release. What bothers me is how the elected records to be preserved are chosen.

@davidlange6
Copy link
Contributor

davidlange6 commented Apr 28, 2021 via email

@mmusich
Copy link
Contributor

mmusich commented Apr 28, 2021

Eg the gt name has to change in a development cycle? Seems a low price to pay (as opposed to keeping this code around for 15 years?)

E.g. the very same configuration that run until some point, becomes broken overnight and to fix it you need to change GlobalTag and buy with it a lot of other potential changes. Seems quite an high price to me.

@davidlange6
Copy link
Contributor

davidlange6 commented Apr 28, 2021 via email

@davidlange6
Copy link
Contributor

davidlange6 commented Apr 28, 2021 via email

@mmusich
Copy link
Contributor

mmusich commented Apr 28, 2021

I don't get what mean by lots of other changes?

Let's say I had an offline data Global Tag cut in 10.6.X (before any ultra-legacy changes) that worked perfectly fine for my application. Now I need to move to a new offline data Global Tag cut in 12.0.X if I want to test my application in a recent release.
That means that:

  • a lot of tags have been updated in the meanwhile
  • the snapshot of the GT is updated, so even the tags that are the same might actually resolve on a different payload than the one I used to see before.

So, overnight I have a lot of spurious changes and I can't really reproduce my original output in the new release, unless I painfully reconstruct the same tag <-> records association + the right snapshot.`

@mmusich
Copy link
Contributor

mmusich commented Apr 28, 2021

Or why autocond doesn't solve this completely? (Alva seems to be regularly changing gt in the tier0 so hardwired gt names aren't easy to maintain regardless)

autoCond is not the solution, when you want to keep using the same old GlobalTag...

@davidlange6
Copy link
Contributor

davidlange6 commented Apr 28, 2021 via email

@ggovi
Copy link
Contributor

ggovi commented Apr 29, 2021

@mmusich As you might have noticed, #31729 did not get the db signature. My fault, certainly, since I was late... Anyhow, No 'record selection' is applied in the present action, and even less in the policy applied. It is simply matter of efficiency in spotting the cases and treat them accordingly, especially taking into account that the policy has been discussed explicitly within AlcaDB only yesterday for the first time.

@mmusich
Copy link
Contributor

mmusich commented Apr 29, 2021

It is simply matter of efficiency in spotting the cases and treat them accordingly, especially taking into account that the policy has been discussed explicitly within AlcaDB only yesterday for the first time.

Shall we assume that from now on, no further deletion of existing records will be allowed?

@ggovi
Copy link
Contributor

ggovi commented Apr 29, 2021

It is simply matter of efficiency in spotting the cases and treat them accordingly, especially taking into account that the policy has been discussed explicitly within AlcaDB only yesterday for the first time.

Shall we assume that from now on, no further deletion of existing records will be allowed?

I confirm that this is the intended policy that has been proposed, to support the functionality of pre-existing GTs in a given release. In addition, removal of persistent CondFormats classes is dangerous since it allows to re-introduce, at some point, a (potentially) different class with the same name, which might then cause crashes at payload access time...

@francescobrivio
Copy link
Contributor

Shall we assume that from now on, no further deletion of existing records will be allowed?

I think that this policy is the safest one, as nicely explained by @ggovi in #33524 (comment).
Shall we make it more official and include it in CMSSW rules somewhere? Because if we keep it as a rule only inside AlCaDB we might have the same conversation next time this happens (hopefully not soon!)

@davidlange6
Copy link
Contributor

davidlange6 commented Apr 29, 2021 via email

@silviodonato
Copy link
Contributor

I've added an item to discuss about this tomorrow at the ORP meeting. @ggovi is there a way to check automatically this new rule? I'm wondering about a unit test that try to read the old global tags used in the main past productions to check if CMSSW is actually able to read the CondFormat.

@ggovi
Copy link
Contributor

ggovi commented May 3, 2021

I've added an item to discuss about this tomorrow at the ORP meeting. @ggovi is there a way to check automatically this new rule? I'm wondering about a unit test that try to read the old global tags used in the main past productions to check if CMSSW is actually able to read the CondFormat.

We could test all of the GTs in the autocond. And we may discover that some of the GTs are actually failing. To make the policy more reasonable, we could use a release-based list of 'removed records' to relax the check we do at GT initialisation ( the one that currently causes the error ).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants