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

HLT crash caused by SiPixelDigisClustersFromSoA (run 357271) #39045

Closed
missirol opened this issue Aug 12, 2022 · 57 comments
Closed

HLT crash caused by SiPixelDigisClustersFromSoA (run 357271) #39045

missirol opened this issue Aug 12, 2022 · 57 comments

Comments

@missirol
Copy link
Contributor

In run-357271, one HLT job crashed with the following error message:

[2] Calling method for module SiPixelDigisClustersFromSoA/'hltSiPixelClustersFromSoA'
Exception Message:
DetSetVector::inserv called with index already in collection;
index value: 344794116

(the monitoring tool does not provide the full error message from cmsRun, afaik)

The error is reproducible (see recipe below). Since it originates from the GPU branch of the reconstruction sequence, it can be reproduced only on a machine with a GPU. The input file is currently on lxplus.

FYI: @fwyzard @silviodonato

cmsrel CMSSW_12_4_6
cd CMSSW_12_4_6/src
cmsenv

hltGetConfiguration \
  run:357271 \
  --globaltag 124X_dataRun3_HLT_v4 \
  --process HLT \
  --data \
  --unprescale \
  --output all \
  --input file:/afs/cern.ch/work/m/missirol/public/fog/edm_run357271_ls1351.root \
  > hlt.py

cmsRun hlt.py &> hlt.log
@cmsbuild
Copy link
Contributor

A new Issue was created by @missirol Marino Missiroli.

@Dr15Jones, @perrotta, @dpiparo, @rappoccio, @makortel, @smuzaffar, @qliphy can you please review it and eventually sign/assign? Thanks.

cms-bot commands are listed here

@makortel
Copy link
Contributor

assign reconstruction, heterogeneous

@makortel
Copy link
Contributor

FYI @cms-sw/trk-dpg-l2 @VinInn

@cmsbuild
Copy link
Contributor

New categories assigned: heterogeneous,reconstruction

@jpata,@fwyzard,@clacaputo,@makortel,@mandrenguyen you have been requested to review this Pull request/Issue and eventually sign? Thanks

@fwyzard
Copy link
Contributor

fwyzard commented Aug 13, 2022

I could reproduce it running on the original error stream file on the online machines:

cmsrel CMSSW_12_4_6
mkdir CMSSW_12_4_6/run
cd CMSSW_12_4_6/run
cmsenv

https_proxy=http://cmsproxy.cms:3128 hltConfigFromDB --runNumber 357271 > hlt.py

cat >> hlt.py <<@EOF
process.source.fileListMode = True
process.source.fileNames = [ '/store/error_stream/run357271/run357271_ls1351_index000134_fu-c2b03-14-01_pid4069417.raw' ]
@EOF

cmsRun hlt.py

I did get the same error, and there is a message shortly before it that may be related:

%MSG-w SiPixelDigisClustersFromSoA:   SiPixelDigisClustersFromSoA:hltSiPixelClustersFromSoA  13-Aug-2022 19:13:33 CEST Run: 357271 Event: 2627443577
cluster below charge Threshold Layer/DetId/clusId 0/344794116/1 size/charge 1/3741
%MSG
...
----- Begin Fatal Exception 13-Aug-2022 19:13:34 CEST-----------------------
An exception of category 'InvalidReference' occurred while
   [0] Processing  Event run: 357271 lumi: 1351 event: 2627443577 stream: 1
   [1] Running path 'HLT_Mu10_TrkIsoVVL_DiPFJet40_DEta3p5_MJJ750_HTT350_PFMETNoMu60_v16'
   [2] Calling method for module SiPixelDigisClustersFromSoA/'hltSiPixelClustersFromSoA'
Exception Message:
DetSetVector::inserv called with index already in collection;
index value: 344794116
----- End Fatal Exception -------------------------------------------------

@ferencek
Copy link
Contributor

ferencek commented Aug 14, 2022

I did a bit of investigation and the code is crashing in https://github.com/cms-sw/cmssw/blob/CMSSW_12_4_6/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelDigisClustersFromSoA.cc#L114 where edmNew::DetSetVector<SiPixelCluster>::FastFiller is constructed. The constructor eventually end up calling edmNew::DetSetVector<T>::addItem which in turn ends up calling edmNew::dstvdetails::errorIdExists where an exception is thrown. The reason for the exception is that the edmNew::DetSetVector<SiPixelCluster>::FastFiller assumes that a single DetId appears only once in a loop. Instead, what I observe in run: 357271 lumi: 1351 event: 2627443577 are DetIds which are not contiguous in the loop over digis in SiPixelDigisClustersFromSoA. Here is the printout

>> DetId digi: 344659972 39690
>> DetId digi: 344659972 39691
>> DetId digi: 344659972 39692
>> DetId digi: 344659972 39693
>> DetId: 344659972
>>>> clusId: 0
>> DetId digi: 344794116 39694
>> DetId digi: 344794116 39695
>> DetId digi: 344794116 39697
>> DetId digi: 344794116 39698
>> DetId digi: 344794116 39699
>> DetId digi: 344794116 39700
>> DetId digi: 344794116 39701
>> DetId digi: 344794116 39702
>> DetId digi: 344794116 39703
>> DetId digi: 344794116 39704
>> DetId digi: 344794116 39705
>> DetId digi: 344794116 39706
>> DetId: 344794116
>>>> clusId: 0
>>>> clusId: 1
%MSG-w SiPixelDigisClustersFromSoA:   SiPixelDigisClustersFromSoA:hltSiPixelClustersFromSoA  14-Aug-2022 18:48:14 CEST Run: 357271 Event: 2627443577
cluster below charge Threshold Layer/DetId/clusId 0/344794116/1 size/charge 1/3741
%MSG
>>>> clusId: 2
>>>> clusId: 3
>>>> clusId: 4
>>>> clusId: 5
>>>> clusId: 6
>>>> clusId: 7
>> DetId digi: 344795140 39707
>> DetId digi: 344795140 39708
>> DetId: 344795140
>>>> clusId: 0
>>>> clusId: 1
>> DetId digi: 344794116 39710
>> DetId digi: 344794116 39711
>> DetId digi: 344794116 39712
>> DetId digi: 344794116 39713
>> DetId digi: 344794116 39714
%MSG-w SiPixelDigisClustersFromSoA:   SiPixelDigisClustersFromSoA:hltSiPixelClustersFromSoA  14-Aug-2022 18:48:14 CEST Run: 357271 Event: 2627443577
Problem det present twice in input! 344794116
%MSG
>> DetId digi: 344795140 39716
>> DetId digi: 344795140 39717
>> DetId digi: 344795140 39718
>> DetId digi: 344795140 39719
>> DetId digi: 344795140 39720
>> DetId digi: 344795140 39721
>> DetId digi: 344795140 39722
>> DetId digi: 344795140 39723
>> DetId digi: 344795140 39724
>> DetId digi: 344795140 39725
>> DetId digi: 344795140 39726
>> DetId digi: 344795140 39727
>> DetId digi: 344795140 39728
>> DetId digi: 344795140 39729
>> DetId digi: 344795140 39730
>> DetId digi: 344795140 39731
>> DetId digi: 344795140 39732
>> DetId digi: 344795140 39733
>> DetId digi: 344795140 39734
>> DetId digi: 344795140 39735
%MSG-w SiPixelDigisClustersFromSoA:   SiPixelDigisClustersFromSoA:hltSiPixelClustersFromSoA  14-Aug-2022 18:48:14 CEST Run: 357271 Event: 2627443577
Problem det present twice in input! 344795140
%MSG

obtained by adding the following changes to SiPixelDigisClustersFromSoA

diff --git a/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelDigisClustersFromSoA.cc b/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelDigisClustersFromSoA.cc
index d36c345ecf0..c0328d665b0 100644
--- a/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelDigisClustersFromSoA.cc
+++ b/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelDigisClustersFromSoA.cc
@@ -43,6 +43,8 @@ private:
   const bool produceDigis_;
   const bool storeDigis_;
   const bool isPhase2_;
+  const std::string moduleType_;
+  const std::string moduleLabel_;
 };
 
 SiPixelDigisClustersFromSoA::SiPixelDigisClustersFromSoA(const edm::ParameterSet& iConfig)
@@ -53,7 +55,9 @@ SiPixelDigisClustersFromSoA::SiPixelDigisClustersFromSoA(const edm::ParameterSet
                          iConfig.getParameter<int>("clusterThreshold_otherLayers")},
       produceDigis_(iConfig.getParameter<bool>("produceDigis")),
       storeDigis_(iConfig.getParameter<bool>("produceDigis") & iConfig.getParameter<bool>("storeDigis")),
-      isPhase2_(iConfig.getParameter<bool>("isPhase2")) {
+      isPhase2_(iConfig.getParameter<bool>("isPhase2")),
+      moduleType_(iConfig.getParameter<std::string>("@module_type")),
+      moduleLabel_(iConfig.getParameter<std::string>("@module_label")) {
   if (produceDigis_)
     digiPutToken_ = produces<edm::DetSetVector<PixelDigi>>();
 }
@@ -111,10 +115,18 @@ void SiPixelDigisClustersFromSoA::produce(edm::StreamID, edm::Event& iEvent, con
   auto fillClusters = [&](uint32_t detId) {
     if (nclus < 0)
       return;  // this in reality should never happen
+    if (outputClusters->exists(detId)) {
+      edm::LogWarning("SiPixelDigisClustersFromSoA")
+              << "Problem det present twice in input! " << detId;
+      nclus = -1;
+      return;
+    }
     edmNew::DetSetVector<SiPixelCluster>::FastFiller spc(*outputClusters, detId);
+    std::cout << ">> DetId: " << detId << std::endl;
     auto layer = (DetId(detId).subdetId() == 1) ? ttopo.pxbLayer(detId) : 0;
     auto clusterThreshold = clusterThresholds_.getThresholdForLayerOnCondition(layer == 1);
     for (int32_t ic = 0; ic < nclus + 1; ++ic) {
+      std::cout << ">>>> clusId: " << ic << std::endl;
       auto const& acluster = aclusters[ic];
       // in any case we cannot  go out of sync with gpu...
       if (acluster.charge < clusterThreshold and !isPhase2_)
@@ -143,6 +155,9 @@ void SiPixelDigisClustersFromSoA::produce(edm::StreamID, edm::Event& iEvent, con
       spc.abort();
   };
 
+  std::cout << "===========================================================================" << std::endl;
+  std::cout << moduleType_ << ":" << moduleLabel_ << " START" << std::endl;
+  std::cout << "===========================================================================" << std::endl;
   for (uint32_t i = 0; i < nDigis; i++) {
     // check for uninitialized digis
     if (digis.rawIdArr(i) == 0)
@@ -172,6 +187,7 @@ void SiPixelDigisClustersFromSoA::produce(edm::StreamID, edm::Event& iEvent, con
         }
       }
     }
+    std::cout << ">> DetId digi: " << detId << " " << i << std::endl;
     PixelDigi dig(digis.pdigi(i));
     if (storeDigis_)
       (*detDigis).data.emplace_back(dig);
@@ -186,7 +202,9 @@ void SiPixelDigisClustersFromSoA::produce(edm::StreamID, edm::Event& iEvent, con
     SiPixelCluster::PixelPos pix(row, col);
     aclusters[digis.clus(i)].add(pix, digis.adc(i));
   }
-
+  std::cout << "===========================================================================" << std::endl;
+  std::cout << moduleType_ << ":" << moduleLabel_ << " END" << std::endl;
+  std::cout << "===========================================================================" << std::endl;
   // fill final clusters
   if (detId > 0)
     fillClusters(detId);

The root cause of the problem therefore seems to be somewhere else, presumably in either SiPixelDigisSoAFromCUDA or SiPixelRawToClusterCUDA. @VinInn or @AdrianoDee might have a better idea what could be the cause.

@missirol
Copy link
Contributor Author

missirol commented Aug 22, 2022

For reference, this type of crash occurred online again in runs 357759 and 357778.

(If it helps, we can get the problematic events from those runs, although there is already a recipe to reproduce the crash.)

@AdrianoDee
Copy link
Contributor

AdrianoDee commented Aug 24, 2022

Hi, I was doing some investigations on top of those done by @ferencek and I've found that for the detID that are failing something weird happens. By modifying SiPixelRawToClusterGPUKernel.cu with

--- a/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelRawToClusterGPUKernel.cu
+++ b/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelRawToClusterGPUKernel.cu
@@ -332,6 +332,23 @@ namespace pixelgpudetails {
     //if (threadIdx.x==0) printf("Event: %u blockIdx.x: %u start: %u end: %u\n", eventno, blockIdx.x, begin, end);

     int32_t first = threadIdx.x + blockIdx.x * blockDim.x;
+    if(first==0)
+    {
+      for (uint32_t i = 0; i < wordCounter; i++) {
+        uint32_t ww = word[i];
+        uint8_t fedId = fedIds[i / 2];  // +1200;
+
+
+        uint32_t link = sipixelconstants::getLink(ww);  // Extract link
+        uint32_t roc = sipixelconstants::getROC(ww);    // Extract Roc in link
+        pixelgpudetails::DetIdGPU detId = getRawId(cablingMap, fedId, link, roc);
+
+        uint32_t rawId = detId.rawId;
+
+        printf("wordGPU %d %d %d \n",i, ww, rawId);
+
+      }
+    }
     for (int32_t iloop = first, nend = wordCounter; iloop < nend; iloop += blockDim.x * gridDim.x) {
       auto gIndex = iloop;
       xx[gIndex] = 0;

@@ -559,6 +577,10 @@ namespace pixelgpudetails {

       cudaCheck(
           cudaMemcpyAsync(word_d.get(), wordFed.word(), wordCounter * sizeof(uint32_t), cudaMemcpyDefault, stream));
+
+        for (unsigned int j = 0; j < wordCounter; j++) {
+          std::cout << "words "<< j << " - " << wordFed.word()[j] << std::endl;
+        }
       cudaCheck(cudaMemcpyAsync(
           fedId_d.get(), wordFed.fedId(), wordCounter * sizeof(uint8_t) / 2, cudaMemcpyDefault, stream));

what I see (I'm clamping the output here) is that the words on CPU are OK, e.g:

words 39691 - 3159063610
words 39692 - 3159063098
words 39693 - 3159062586
words 39694 - 3159062058
words 39695 - 3159630376
words 39696 - 3170333486

while on GPU (the last number being the raw detID and there's the incriminated one, 344794116)

wordGPU 39691 -1602121006 344659972
wordGPU 39692 -1602121573 344659972
wordGPU 39693 -1602120904 344659972
wordGPU 39694 -1537898446 344794116
wordGPU 39695 -1533446856 344794116
wordGPU 39696 -1524583238 344794116

where it seems that going above 2^31 is causing an overflow (while those beings uint32_t):

words 41699 - 2098796897 -> below
words 41700 - 2150718614 -> above
wordGPU 41699 2098796897 344258564 OK
wordGPU 41700 -2144248682 344258564 Overflow

It isn't normal, is it?

I'm trying to understand why this happens (and seems this could be the cause of the crashes, or at least being correlated to it) and posting it here if somebody sees something I don't see.

@dan131riley
Copy link

+        printf("wordGPU %d %d %d \n",i, ww, rawId);

Shouldn't that be

    printf("wordGPU %ud %ud %ud \n",i, ww, rawId);

I'm surprised the compiler didn't warn, modern compilers are generally pretty good at spotting implicit type conversions in printf.

@AdrianoDee
Copy link
Contributor

You are right. Sorry for the huge noise. For the warning I imagine that's nvcc not being that smart or me not noticing it.

@nothingface0
Copy link
Contributor

nothingface0 commented Sep 1, 2022

Using @AdrianoDee's code and printing the rawId from thread 0, you get something like:

wordGPU 34049 2816475237 344795140  <-- first appearance
wordGPU 34050 2760128559 344794116 
wordGPU 34051 2760522087 344794116 
wordGPU 34052 2760522751 344794116 
wordGPU 34053 2760967176 344794116 
wordGPU 34054 2760392292 344794116 
wordGPU 34055 2760032913 344794116 
wordGPU 34056 2760096912 344794116 
wordGPU 34057 2761623844 344794116 
wordGPU 34058 2761030128 344794116 
wordGPU 34059 2814380042 344795140  <-- second appearance
wordGPU 34060 2823233889 344794116 
wordGPU 34061 2823298389 344794116 
wordGPU 34062 2823826783 344794116 
wordGPU 34063 2824308583 344794116 
wordGPU 34064 2830242124 344794116 
wordGPU 34065 2830307924 344794116 
wordGPU 34066 2832440512 344794116 
wordGPU 34067 2832439930 344794116 
wordGPU 34068 2832440128 344794116 
wordGPU 34069 2832440769 344794116 
wordGPU 34070 2881488896 344921092 
wordGPU 34071 2897088372 344795140  <-- last appearance 
wordGPU 34072 2897153667 344795140 
wordGPU 34073 2897153312 344795140 
wordGPU 34074 2897153945 344795140 
wordGPU 34075 2897219168 344795140 
wordGPU 34076 2897218658 344795140 
wordGPU 34077 2897219009 344795140

The thirdfourth column being the rawId, correct?

Since this is printed sequentially inside the RawToDigi_kernel, shouldn't the rawIds be already contiguous? If yes, where is this sorting done?
I.e. 344795140 is the first in the list above, then 344794116 comes in and 344795140 re-appears in the end.

Excuse my ignorance, I haven't found any documentation on where this sorting is done.

@makortel
Copy link
Contributor

makortel commented Sep 1, 2022

I don't think there is any explicit sorting in the CUDA code path. The body of SiPixelRawToClusterCUDA::acquire() just reformats the incoming raw data for the GPU consumption.

Could the out-of-order appearance of DetId's be a feature of the raw data itself? The legacy raw-to-digi code seems to handle that case

if (nrawId != rawId) {
nrawId = rawId;
detDigis = &digis.find_or_insert(rawId);
if ((*detDigis).empty()) {
(*detDigis).data.reserve(32); // avoid the first relocations
}
}

The SiPixelDigisClustersFromSoA has also similar code

detDigis = &collection->find_or_insert(detId);
if ((*detDigis).empty())
(*detDigis).data.reserve(64); // avoid the first relocations
else {
edm::LogWarning("SiPixelDigisClustersFromSoA")
<< "Problem det present twice in input! " << (*detDigis).detId();
}

(is that warning message visible?) for digis (that use edm::DetSetVector). For clusters (that use edmNew::DetSetVector, I think, the exception gets thrown here
edmNew::DetSetVector<SiPixelCluster>::FastFiller spc(*outputClusters, detId);

in case the detId already exists in the edmNew::DetSetVector.

So for the legacy digi-cluster chain it seems to me the sorting of digis happens implicitly in filling first the edm::DetSetVector for digis, and using that as the input data for the clusterizer.

@missirol
Copy link
Contributor Author

missirol commented Oct 6, 2022

For the record, we continue to see this crash online sporadically. Runs where this happened:

357721
357759
357778
359718
359812

(I haven't investigated recent crashes, I hope the original reproducer is sufficient)

FYI: @cms-sw/hlt-l2

@AdrianoDee
Copy link
Contributor

AdrianoDee commented Oct 7, 2022

Having tested the configuration posted by @missirol above with a dummy fix in which we sort the digis in SiPixelDigisClustersFromSoA by the raw id:

--git a/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelDigisClustersFromSoA.cc b/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelDigisClustersFromSoA.cc
index d36c345ecf0..d5d2ae8a0c6 100644
--- a/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelDigisClustersFromSoA.cc
+++ b/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelDigisClustersFromSoA.cc
@@ -17,6 +17,8 @@
 #include "Geometry/Records/interface/TrackerTopologyRcd.h"
 #include "Geometry/CommonTopologies/interface/SimplePixelTopology.h"
 
+#include <numeric>
+
 // local include(s)
 #include "PixelClusterizerBase.h"
 #include "SiPixelClusterThresholds.h"
@@ -143,7 +145,13 @@ void SiPixelDigisClustersFromSoA::produce(edm::StreamID, edm::Event& iEvent, con
       spc.abort();
   };
 
-  for (uint32_t i = 0; i < nDigis; i++) {
+  std::vector<uint32_t> sortIdxs(nDigis);
+  std::iota(sortIdxs.begin(), sortIdxs.end(), 0);
+  std::sort(
+      sortIdxs.begin(), sortIdxs.end(), [&](int32_t const i, int32_t const j) { return digis.rawIdArr(i) > digis.rawIdArr(j); });
+
+  for (uint32_t id = 0; id < nDigis; id++) {
+    auto i = sortIdxs[id];

everything run smoothly. I don't see any obvious drawback (the sorting itself takes $0.71 \pm 0.12 \text{ms}$ on a gpu machine at P5). If this makes sense I may quickly open a PR.

@fwyzard
Copy link
Contributor

fwyzard commented Oct 7, 2022

@AdrianoDee the one thing that is not clear to me is if there is anything that makes use of the digis being sorted on the gpu ?

@VinInn
Copy link
Contributor

VinInn commented Oct 7, 2022

GPU code expects data from a single module to be contiguous.
It does not expect rawid to be sorted.
The sequence printed by @ferencek and @nothingface0 should give problems on gpu:
see https://cmssdt.cern.ch/dxr/CMSSW/source/RecoLocalTracker/SiPixelClusterizer/plugins/gpuClustering.h#68
SO in the case in hand one should find module 344795140 three times and module 344794116 at least twice (as the printout by @ferencek shows):
that is NOT sane.

@fwyzard
Copy link
Contributor

fwyzard commented Oct 7, 2022

OK, then the sorting (at least by module id) should be added to the cpu code ?

@VinInn
Copy link
Contributor

VinInn commented Oct 7, 2022

Not sure what to do. The input format is not what expected (duplicated modules?). It's a bit like duplicated pixels.
The numbering of the clusters is not consistent in any case: there will be clusters with the same gpu-index in those duplicated modules.
In the event above the first two 344795140 seem suspicious but they are splitting 344794116 in two (or three).
Clustering cannot be "perfect" in such a case (to say the least).
I do not think that any code on GPU checks for duplicates modules so , as long as clusters are there, the rest of the reco should be ok.
Still I'm surprised that after the sorting there is no mess in code that builds legacy clusters (need to check how the index-in-module is converted in a index in event)

@VinInn
Copy link
Contributor

VinInn commented Oct 7, 2022

here
https://cmssdt.cern.ch/dxr/CMSSW/source/RecoLocalTracker/SiPixelClusterizer/plugins/gpuClustering.h#386
something for sure goes "wrong". Last arrived is served...

@VinInn
Copy link
Contributor

VinInn commented Oct 7, 2022

In my opinion if one switch GPU_DEBUG some assert will fail.
As is RecHits "maybe" messed up in the affected modules (some missing, some "added"). A crash on gpu is unlikely, not excluded.

@fwyzard
Copy link
Contributor

fwyzard commented Oct 7, 2022

Actually, no, I do not get an assertion failure:

decoding 42236 digis.
CUDA countModules kernel launch with 165 blocks of 256 threads
CUDA findClus kernel launch with 1856 blocks of 384 threads
start clusterizer for module 701 in block 58
start clusterizer for module 401 in block 54
histo size 18
histo size 3
start clusterizer for module 1101 in block 307
start clusterizer for module 901 in block 337
# loops 3
# loops 5
histo size 11
start clusterizer for module 1401 in block 529
histo size 5
start clusterizer for module 801 in block 556
1 clusters in module 401
5 clusters in module 701
# loops 3
# loops 3
histo size 8
start clusterizer for module 201 in block 764
histo size 11
start clusterizer for module 1301 in block 832
4 clusters in module 1101
2 clusters in module 901
# loops 3
# loops 3
histo size 24
start clusterizer for module 501 in block 997
start clusterizer for module 301 in block 1033
histo size 18
2 clusters in module 1401
1 clusters in module 801
start clusterizer for module 1801 in block 1137
start clusterizer for module 1601 in block 1154
# loops 3
start clusterizer for module 1201 in block 1194
histo size 20
# loops 3
histo size 13
start clusterizer for module 101 in block 1259
5 clusters in module 201
histo size 21
start clusterizer for module 1001 in block 1350
histo size 21
14 clusters in module 1301
# loops 3
histo size 21
# loops 3
start clusterizer for module 1 in block 1466
histo size 50
5 clusters in module 501
# loops 5
histo size 14
6 clusters in module 301
# loops 3
# loops 11
start clusterizer for module 601 in block 1597
start clusterizer for module 1501 in block 1594
start clusterizer for module 1701 in block 1640
histo size 129
# loops 5
7 clusters in module 1801
# loops 3
9 clusters in module 1201
7 clusters in module 1601
histo size 9
histo size 10
histo size 19
10 clusters in module 101
# loops 7
4 clusters in module 1001
# loops 3
# loops 3
# loops 3
19 clusters in module 1
2 clusters in module 601
5 clusters in module 1501
10 clusters in module 1701
start cluster charge cut for module 701 in block 58
start cluster charge cut for module 401 in block 54
start cluster charge cut for module 1101 in block 307
start cluster charge cut for module 901 in block 337
start cluster charge cut for module 1401 in block 529
start cluster charge cut for module 801 in block 556
start cluster charge cut for module 201 in block 764
start cluster charge cut for module 1301 in block 832
start cluster charge cut for module 501 in block 997
start cluster charge cut for module 301 in block 1033
start cluster charge cut for module 1801 in block 1137
start cluster charge cut for module 1601 in block 1154
start cluster charge cut for module 1201 in block 1194
start cluster charge cut for module 101 in block 1259
start cluster charge cut for module 1001 in block 1350
start cluster charge cut for module 1 in block 1466
start cluster charge cut for module 1501 in block 1594
start cluster charge cut for module 601 in block 1597
start cluster charge cut for module 1701 in block 1640
moduleStart 1856 9956
moduleStart 96 2136
moduleStart 1184 5806
launching getHits kernel for 1709 blocks
hitbuilder: 1 clusters in module 401. will write at 3884
hitbuilder: 5 clusters in module 701. will write at 4842
hitbuilder: 4 clusters in module 1101. will write at 5653
hitbuilder: 2 clusters in module 901. will write at 5222
hitbuilder: 1 clusters in module 801. will write at 5045
hitbuilder: 2 clusters in module 1401. will write at 7184
hitbuilder: 14 clusters in module 1301. will write at 6489
hitbuilder: 5 clusters in module 201. will write at 2763
hitbuilder: 5 clusters in module 501. will write at 4185
hitbuilder: 6 clusters in module 301. will write at 3419
hitbuilder: 6 clusters in module 1801. will write at 9605
hitbuilder: 7 clusters in module 1601. will write at 8449
hitbuilder: 10 clusters in module 101. will write at 2156
hitbuilder: 9 clusters in module 1201. will write at 5959
hitbuilder: 4 clusters in module 1001. will write at 5428
hitbuilder: 17 clusters in module 1. will write at 13
hitbuilder: 2 clusters in module 601. will write at 4541
hitbuilder: 4 clusters in module 1501. will write at 7865
hitbuilder: 9 clusters in module 1701. will write at 9014
LayerStart 0/10 at module 0: 0
LayerStart 1/10 at module 96: 2136
LayerStart 2/10 at module 320: 3548
LayerStart 3/10 at module 672: 4787
LayerStart 4/10 at module 1184: 5806
LayerStart 5/10 at module 1296: 6433
LayerStart 6/10 at module 1408: 7209
LayerStart 7/10 at module 1520: 7928
LayerStart 8/10 at module 1632: 8539
LayerStart 9/10 at module 1744: 9225
LayerStart 10/10 at module 1856: 9956
Allocation for tuple building. N hits 9956
finished building pixel tracks on GPU

only the failure in the CPU conversion:

%MSG-w SiPixelDigisClustersFromSoA:   SiPixelDigisClustersFromSoA:hltSiPixelClustersFromSoA  07-Oct-2022 17:39:59 CEST Run: 357271 Event: 2627443577
cluster below charge Threshold Layer/DetId/clusId 0/344794116/1 size/charge 1/3741
%MSG
%MSG-w SiPixelFrameConverter:  SiPixelRawToDigi:hltSiPixelDigisRegForDisplaced  07-Oct-2022 17:39:59 CEST Run: 357271 Event: 2627443577
Map shows no fed=1326, link=41, roc=9
%MSG
%MSG-w SiPixelFrameConverter:  SiPixelRawToDigi:hltSiPixelDigisRegForDisplaced  07-Oct-2022 17:39:59 CEST Run: 357271 Event: 2627443577
Map shows no fed=1326, link=41, roc=10
%MSG
%MSG-w SiPixelFrameConverter:  SiPixelRawToDigi:hltSiPixelDigisRegForDisplaced  07-Oct-2022 17:39:59 CEST Run: 357271 Event: 2627443577
Map shows no fed=1326, link=41, roc=12
%MSG
%MSG-w SiPixelFrameConverter:  SiPixelRawToDigi:hltSiPixelDigisRegForDisplaced  07-Oct-2022 17:39:59 CEST Run: 357271 Event: 2627443577
Map shows no fed=1326, link=41, roc=16
%MSG
%MSG-w SiPixelFrameConverter:  SiPixelRawToDigi:hltSiPixelDigisRegForDisplaced  07-Oct-2022 17:39:59 CEST Run: 357271 Event: 2627443577
Map shows no fed=1326, link=41, roc=17
%MSG
----- Begin Fatal Exception 07-Oct-2022 17:39:59 CEST-----------------------
An exception of category 'InvalidReference' occurred while
   [0] Processing  Event run: 357271 lumi: 1351 event: 2627443577 stream: 0
   [1] Running path 'DQM_PixelReconstruction_v4'
   [2] Calling method for module SiPixelDigisClustersFromSoA/'hltSiPixelClustersFromSoA'
Exception Message:
DetSetVector::inserv called with index already in collection;
index value: 344794116
----- End Fatal Exception -------------------------------------------------

@VinInn
Copy link
Contributor

VinInn commented Oct 7, 2022

ok. let's protect the conversion from SoA and go on: (rechits module most probably did not run yet)

@fwyzard
Copy link
Contributor

fwyzard commented Oct 7, 2022

Adding the sort, I don't get any other messages.

@fwyzard
Copy link
Contributor

fwyzard commented Oct 9, 2022

@ferencek @nothingface0 while sorting the data technically fixes the crash, it is not clear to us if the resulting reconstruction is correct, and in fact if the input data are valid or not.
Could you comment if it is expected that some modules are split across the data stream ?

@fwyzard
Copy link
Contributor

fwyzard commented Oct 9, 2022

assign trk-dpg

@VinInn
Copy link
Contributor

VinInn commented Oct 10, 2022

Solution: detect map errors on GPU

@VinInn
Copy link
Contributor

VinInn commented Oct 10, 2022

proposed solution

+      //check that is not a spurious channel
+      if (roc>MAX_ROC) {
+        printf ("spurious roc%d %d in det %d\n", roc, gIndex,rawId);
+        continue;
+      }

this should protect the "map"
uint32_t index = fedId * MAX_LINK * MAX_ROC + (link - 1) * MAX_ROC + roc;

(maybe also || link>MAX_LINK)

@trtomei
Copy link
Contributor

trtomei commented Oct 11, 2022

Hi, sorry to bug -- how is this coming along?
Is there consensus to add the solution from @VinInn above to the SiPixelRawToClusterGPUKernel.cu (which I take is the same as SiPixelRawToClusterCUDA from @ferencek )?

@ferencek
Copy link
Contributor

It is then not just roc=17 that is spurious but any roc>8 (seems to be confirmed by https://github.com/cms-sw/cmssw/blob/CMSSW_12_4_0/EventFilter/SiPixelRawToDigi/src/PixelDataFormatter.cc#L49). In August of last year I privately emailed Danek about fed=1326, link=41, roc=9 after Marco Musich reported seeing these warnings when privately re-recoing CRUZET data. The answer from Danek was:

This is module FPix_BmI_D3_BLD11_PNL1_RNG1, channel 41, so it has 8.
Somehow in the raw data packet there is something that looks like a 9th roc instead of the TBM trailer,
and the map complains about it, because there is no roc 9.

I guess that there is something wrong with the TBM phases for this module and the pixel data look
like a ROC header?

We should just ignore it for the moment. Perhaps the settings can be improved during the next commissioning
cycle.

There was also a response from Danek to Marco on Mattermost.

So in general spurious ROCs could be identified based on the cabling map info. However, I am somewhat puzzled by detId 344795140 appearing on the same link with detId 344794116. Shouldn't detId be defined by the cabling map and therefore couldn't be messed up by readout errors.

@VinInn
Copy link
Contributor

VinInn commented Oct 12, 2022

the cabling map is a simple vector on gpu whose index is

fedId * MAX_LINK * MAX_ROC + (link - 1) * MAX_ROC + roc;

so if roc is >MAX_ROC it will spill in next link...

The protection

if (roc>MAX_ROC || link>MAX_LINK) continue;

is not only safe: I would say it is mandatory given the algorithm above.

@VinInn
Copy link
Contributor

VinInn commented Oct 12, 2022

IMHO We cannot ignore it. CMS cannot continue to loose data. I'm very surprised that such a serious problem is still not solved after two months (whatever solution would have been including reverting to legacy).

@fwyzard
Copy link
Contributor

fwyzard commented Oct 12, 2022

I am trying to run with these changes:

diff --git a/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelRawToClusterGPUKernel.cu b/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelRawToClusterGPUKernel.cu
index 670d5a9131b3..4ac62ada8160 100644
--- a/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelRawToClusterGPUKernel.cu
+++ b/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelRawToClusterGPUKernel.cu
@@ -354,8 +354,15 @@ namespace pixelgpudetails {
 
       uint32_t link = sipixelconstants::getLink(ww);  // Extract link
       uint32_t roc = sipixelconstants::getROC(ww);    // Extract Roc in link
       pixelgpudetails::DetIdGPU detId = getRawId(cablingMap, fedId, link, roc);
+      uint32_t rawId = detId.rawId;
+
+      // check for spurious channels
+      if (roc > MAX_ROC or link > MAX_LINK) {
+        printf("spurious link %d, ROC %d, found with index %d in detector %d\n", link, roc, gIndex, rawId);
+        continue;
+      }
 
       uint8_t errorType = checkROC(ww, fedId, link, cablingMap, debug);
       skipROC = (roc < pixelgpudetails::maxROCIndex) ? false : (errorType != 0);
       if (includeErrors and skipROC) {

This does avoid the crashes, but it prints a huge amount of messages, about 600 per event:

...
Begin processing the 142nd record. Run 360019, Event 1239592136, LumiSection 611 on stream 0 at 12-Oct-2022 15:37:38.488 CEST
spurious link 10, ROC 25, found with index 10144 in detector 304193556
spurious link 0, ROC 26, found with index 22337 in detector 303058960
spurious link 47, ROC 25, found with index 8192 in detector 65534
spurious link 48, ROC 25, found with index 8193 in detector 65534
spurious link 23, ROC 25, found with index 31555 in detector 352605188
spurious link 0, ROC 26, found with index 20263 in detector 303054860
spurious link 0, ROC 26, found with index 8617 in detector 303079444
spurious link 27, ROC 25, found with index 17894 in detector 305172496
spurious link 28, ROC 25, found with index 17895 in detector 305172492
spurious link 0, ROC 26, found with index 33865 in detector 352811012
spurious link 0, ROC 26, found with index 40715 in detector 344209412
spurious link 5, ROC 25, found with index 20292 in detector 304123920
spurious link 6, ROC 25, found with index 20293 in detector 306262028
spurious link 7, ROC 25, found with index 20294 in detector 306262028
spurious link 8, ROC 25, found with index 20295 in detector 306262032
spurious link 47, ROC 25, found with index 12330 in detector 304173080
spurious link 48, ROC 25, found with index 12331 in detector 304173080
spurious link 43, ROC 25, found with index 15872 in detector 65534
spurious link 44, ROC 25, found with index 15873 in detector 65534
spurious link 45, ROC 25, found with index 15874 in detector 65534
spurious link 46, ROC 25, found with index 15875 in detector 65534
spurious link 47, ROC 25, found with index 15876 in detector 65534
spurious link 48, ROC 25, found with index 15877 in detector 65534
spurious link 0, ROC 26, found with index 29891 in detector 303067152
spurious link 1, ROC 25, found with index 29892 in detector 306343952
spurious link 2, ROC 25, found with index 29893 in detector 306343940
spurious link 39, ROC 25, found with index 16326 in detector 304115720
spurious link 40, ROC 25, found with index 16327 in detector 304115720
spurious link 0, ROC 26, found with index 21893 in detector 304132108
spurious link 45, ROC 25, found with index 31264 in detector 65534
spurious link 46, ROC 25, found with index 31265 in detector 65534
spurious link 47, ROC 25, found with index 31266 in detector 65534
spurious link 48, ROC 25, found with index 31267 in detector 65534
spurious link 1, ROC 25, found with index 38532 in detector 352651268
spurious link 2, ROC 25, found with index 38533 in detector 352777220
spurious link 0, ROC 26, found with index 25893 in detector 303087632
spurious link 0, ROC 26, found with index 17987 in detector 304103436
spurious link 9, ROC 25, found with index 36293 in detector 352888836
spurious link 10, ROC 25, found with index 36294 in detector 352998404
spurious link 11, ROC 25, found with index 27334 in detector 304168976
spurious link 12, ROC 25, found with index 27335 in detector 304168976
spurious link 31, ROC 25, found with index 4008 in detector 306188312
spurious link 32, ROC 25, found with index 4009 in detector 306188308
spurious link 46, ROC 25, found with index 27136 in detector 65534
spurious link 47, ROC 25, found with index 27137 in detector 65534
spurious link 48, ROC 25, found with index 27138 in detector 65534
spurious link 0, ROC 26, found with index 27139 in detector 305311748
spurious link 0, ROC 26, found with index 26083 in detector 306421776
spurious link 0, ROC 26, found with index 43681 in detector 344233988
spurious link 0, ROC 26, found with index 15305 in detector 303067160
spurious link 47, ROC 25, found with index 12928 in detector 303071252
spurious link 48, ROC 25, found with index 12929 in detector 303071252
spurious link 23, ROC 25, found with index 12800 in detector 305258524
spurious link 24, ROC 25, found with index 12801 in detector 305258528
spurious link 37, ROC 25, found with index 31013 in detector 306331656
spurious link 25, ROC 25, found with index 34729 in detector 352786436
spurious link 26, ROC 25, found with index 34730 in detector 352658436
spurious link 43, ROC 25, found with index 28256 in detector 65534
spurious link 44, ROC 25, found with index 28257 in detector 65534
spurious link 45, ROC 25, found with index 28258 in detector 65534
spurious link 46, ROC 25, found with index 28259 in detector 303071248
spurious link 47, ROC 25, found with index 28260 in detector 303071248
spurious link 48, ROC 25, found with index 28261 in detector 303071248
spurious link 0, ROC 26, found with index 19657 in detector 304091148
spurious link 0, ROC 26, found with index 28047 in detector 304173068
spurious link 25, ROC 25, found with index 33066 in detector 352675844
spurious link 26, ROC 25, found with index 33067 in detector 352678916
spurious link 17, ROC 25, found with index 7814 in detector 303063068
spurious link 18, ROC 25, found with index 7815 in detector 303063068
spurious link 0, ROC 26, found with index 45191 in detector 344356868
spurious link 27, ROC 31, found with index 37131 in detector 352633860
spurious link 0, ROC 26, found with index 19341 in detector 303042576
spurious link 45, ROC 25, found with index 25189 in detector 304189444
spurious link 46, ROC 25, found with index 25190 in detector 304185356
spurious link 47, ROC 25, found with index 25191 in detector 304185356
spurious link 48, ROC 25, found with index 25192 in detector 304185356
spurious link 0, ROC 26, found with index 25193 in detector 303083536
spurious link 0, ROC 26, found with index 11859 in detector 304197656
spurious link 8, ROC 25, found with index 8310 in detector 304181272
spurious link 7, ROC 25, found with index 32321 in detector 352953348
spurious link 8, ROC 25, found with index 32322 in detector 352954372
spurious link 0, ROC 26, found with index 14817 in detector 306343956
spurious link 1, ROC 25, found with index 14818 in detector 303067160
spurious link 2, ROC 25, found with index 14819 in detector 303067160
spurious link 11, ROC 25, found with index 29583 in detector 304156688
spurious link 12, ROC 25, found with index 29584 in detector 304156688
spurious link 16, ROC 25, found with index 5152 in detector 65534
spurious link 17, ROC 25, found with index 5153 in detector 65534
spurious link 18, ROC 25, found with index 5154 in detector 65534
spurious link 19, ROC 25, found with index 5155 in detector 65534
spurious link 20, ROC 25, found with index 5156 in detector 65534
spurious link 21, ROC 25, found with index 5157 in detector 65534
spurious link 22, ROC 25, found with index 5158 in detector 305197084
spurious link 23, ROC 25, found with index 5159 in detector 305197084
spurious link 24, ROC 25, found with index 5160 in detector 305197088
spurious link 13, ROC 25, found with index 29134 in detector 306360328
spurious link 14, ROC 25, found with index 29135 in detector 303075332
spurious link 0, ROC 26, found with index 22745 in detector 306294800
spurious link 0, ROC 26, found with index 29013 in detector 303071248
spurious link 19, ROC 25, found with index 11568 in detector 303087648
spurious link 20, ROC 25, found with index 11569 in detector 303087648
spurious link 0, ROC 26, found with index 21401 in detector 303054864
spurious link 7, ROC 25, found with index 30292 in detector 304148492
spurious link 8, ROC 25, found with index 30293 in detector 304148492
spurious link 0, ROC 26, found with index 36791 in detector 352626692
spurious link 0, ROC 26, found with index 17497 in detector 303050768
spurious link 4, ROC 31, found with index 9267 in detector 65534
spurious link 29, ROC 30, found with index 14191 in detector 65534
spurious link 18, ROC 25, found with index 3927 in detector 303042588
spurious link 38, ROC 25, found with index 43040 in detector 344753156
spurious link 0, ROC 26, found with index 39797 in detector 344324100
spurious link 17, ROC 25, found with index 24403 in detector 303079432
spurious link 18, ROC 25, found with index 24404 in detector 303079432
spurious link 0, ROC 26, found with index 6485 in detector 304132120
spurious link 0, ROC 26, found with index 12701 in detector 304173080
spurious link 5, ROC 25, found with index 19374 in detector 304091152
spurious link 6, ROC 25, found with index 19375 in detector 306192396
spurious link 7, ROC 25, found with index 19376 in detector 306192396
spurious link 8, ROC 25, found with index 19377 in detector 306192400
spurious link 29, ROC 25, found with index 40954 in detector 344201220
spurious link 30, ROC 25, found with index 40955 in detector 344687620
spurious link 0, ROC 26, found with index 43203 in detector 344225796
spurious link 0, ROC 26, found with index 25463 in detector 304185356
spurious link 0, ROC 26, found with index 6899 in detector 303058964
spurious link 0, ROC 26, found with index 30199 in detector 306343952
spurious link 17, ROC 25, found with index 1877 in detector 303046688
spurious link 18, ROC 25, found with index 1878 in detector 303046688
spurious link 0, ROC 26, found with index 26619 in detector 303087628
spurious link 0, ROC 26, found with index 27619 in detector 303075344
spurious link 3, ROC 25, found with index 27635 in detector 304173072
spurious link 4, ROC 25, found with index 27636 in detector 304173072
spurious link 0, ROC 26, found with index 8983 in detector 304177176
spurious link 0, ROC 26, found with index 27045 in detector 304197644
spurious link 6, ROC 25, found with index 27062 in detector 305307660
spurious link 12, ROC 25, found with index 1120 in detector 65534
spurious link 13, ROC 25, found with index 1121 in detector 65534
spurious link 14, ROC 25, found with index 1122 in detector 65534
spurious link 15, ROC 25, found with index 1123 in detector 65534
spurious link 16, ROC 25, found with index 1124 in detector 65534
spurious link 17, ROC 25, found with index 1125 in detector 65534
spurious link 18, ROC 25, found with index 1126 in detector 65534
spurious link 19, ROC 25, found with index 1127 in detector 65534
spurious link 20, ROC 25, found with index 1128 in detector 65534
spurious link 21, ROC 25, found with index 1129 in detector 65534
spurious link 22, ROC 25, found with index 1130 in detector 305168412
spurious link 23, ROC 25, found with index 1131 in detector 305168412
spurious link 24, ROC 25, found with index 1132 in detector 305168416
spurious link 38, ROC 25, found with index 19776 in detector 65534
spurious link 39, ROC 25, found with index 19777 in detector 65534
spurious link 40, ROC 25, found with index 19778 in detector 65534
spurious link 41, ROC 25, found with index 19779 in detector 65534
spurious link 42, ROC 25, found with index 19780 in detector 65534
spurious link 43, ROC 25, found with index 19781 in detector 65534
spurious link 44, ROC 25, found with index 19782 in detector 65534
spurious link 45, ROC 25, found with index 19783 in detector 65534
spurious link 46, ROC 25, found with index 19784 in detector 65534
spurious link 47, ROC 25, found with index 19785 in detector 65534
spurious link 48, ROC 25, found with index 19786 in detector 65534
spurious link 0, ROC 26, found with index 19787 in detector 305143812
spurious link 18, ROC 25, found with index 31511 in detector 353235972
spurious link 41, ROC 25, found with index 23674 in detector 304144388
spurious link 42, ROC 25, found with index 23675 in detector 304144392
spurious link 9, ROC 25, found with index 28097 in detector 65534
spurious link 10, ROC 25, found with index 28098 in detector 65534
spurious link 11, ROC 25, found with index 28099 in detector 65534
spurious link 12, ROC 25, found with index 28100 in detector 65534
spurious link 13, ROC 25, found with index 28101 in detector 65534
spurious link 14, ROC 25, found with index 28102 in detector 65534
spurious link 15, ROC 25, found with index 28103 in detector 65534
spurious link 16, ROC 25, found with index 28104 in detector 65534
spurious link 17, ROC 25, found with index 28105 in detector 65534
spurious link 18, ROC 25, found with index 28106 in detector 65534
spurious link 19, ROC 25, found with index 28107 in detector 65534
spurious link 20, ROC 25, found with index 28108 in detector 65534
spurious link 21, ROC 25, found with index 28109 in detector 65534
spurious link 22, ROC 25, found with index 28110 in detector 305258504
spurious link 23, ROC 25, found with index 28111 in detector 305258504
spurious link 24, ROC 25, found with index 28112 in detector 305258500
spurious link 9, ROC 25, found with index 10143 in detector 304193560
spurious link 0, ROC 26, found with index 8085 in detector 304144408
spurious link 0, ROC 26, found with index 5079 in detector 304123928
spurious link 0, ROC 26, found with index 35001 in detector 352790532
spurious link 41, ROC 25, found with index 9225 in detector 65534
spurious link 42, ROC 25, found with index 9226 in detector 65534
spurious link 43, ROC 25, found with index 9227 in detector 65534
spurious link 44, ROC 25, found with index 9228 in detector 65534
spurious link 45, ROC 25, found with index 9229 in detector 65534
spurious link 46, ROC 25, found with index 9230 in detector 303083540
spurious link 47, ROC 25, found with index 9231 in detector 303083540
spurious link 48, ROC 25, found with index 9232 in detector 303083540
spurious link 0, ROC 26, found with index 9233 in detector 305274912
spurious link 41, ROC 25, found with index 24746 in detector 65534
spurious link 42, ROC 25, found with index 24747 in detector 65534
spurious link 43, ROC 25, found with index 24748 in detector 65534
spurious link 44, ROC 25, found with index 24749 in detector 65534
spurious link 45, ROC 25, found with index 24750 in detector 65534
spurious link 46, ROC 25, found with index 24751 in detector 303083536
spurious link 47, ROC 25, found with index 24752 in detector 303083536
spurious link 48, ROC 25, found with index 24753 in detector 303083536
spurious link 0, ROC 26, found with index 4089 in detector 304091160
spurious link 9, ROC 25, found with index 18130 in detector 304099340
spurious link 10, ROC 25, found with index 18131 in detector 304099344
spurious link 11, ROC 25, found with index 18132 in detector 304099344
spurious link 12, ROC 25, found with index 18133 in detector 304099344
spurious link 37, ROC 25, found with index 32213 in detector 352962564
spurious link 38, ROC 25, found with index 32214 in detector 353219588
spurious link 41, ROC 25, found with index 1291 in detector 65534
spurious link 42, ROC 25, found with index 1292 in detector 65534
spurious link 43, ROC 25, found with index 1293 in detector 65534
spurious link 44, ROC 25, found with index 1294 in detector 65534
spurious link 45, ROC 25, found with index 1295 in detector 65534
spurious link 46, ROC 25, found with index 1296 in detector 303050772
spurious link 47, ROC 25, found with index 1297 in detector 303050772
spurious link 48, ROC 25, found with index 1298 in detector 303050772
spurious link 0, ROC 26, found with index 1299 in detector 305176608
spurious link 41, ROC 25, found with index 17470 in detector 304107528
spurious link 42, ROC 25, found with index 17471 in detector 304107524
spurious link 41, ROC 25, found with index 22298 in detector 304136200
spurious link 42, ROC 25, found with index 22299 in detector 304136196
spurious link 43, ROC 25, found with index 22300 in detector 304136196
spurious link 44, ROC 25, found with index 22301 in detector 304136196
spurious link 0, ROC 26, found with index 5981 in detector 303054868
spurious link 0, ROC 26, found with index 31093 in detector 304152588
spurious link 43, ROC 25, found with index 38522 in detector 353297412
spurious link 44, ROC 25, found with index 38523 in detector 353298436
spurious link 0, ROC 26, found with index 20607 in detector 304123916
spurious link 24, ROC 25, found with index 24672 in detector 305287172
spurious link 33, ROC 25, found with index 24699 in detector 305283088
spurious link 34, ROC 25, found with index 24700 in detector 305283076
spurious link 0, ROC 26, found with index 24607 in detector 304177164
spurious link 3, ROC 29, found with index 43240 in detector 344335364
spurious link 3, ROC 29, found with index 43241 in detector 344335364
spurious link 41, ROC 25, found with index 5328 in detector 65534
spurious link 42, ROC 25, found with index 5329 in detector 65534
spurious link 43, ROC 25, found with index 5330 in detector 65534
spurious link 44, ROC 25, found with index 5331 in detector 65534
spurious link 45, ROC 25, found with index 5332 in detector 65534
spurious link 46, ROC 25, found with index 5333 in detector 303054868
spurious link 47, ROC 25, found with index 5334 in detector 303054868
spurious link 48, ROC 25, found with index 5335 in detector 303054868
spurious link 39, ROC 25, found with index 18325 in detector 304099336
spurious link 40, ROC 25, found with index 18326 in detector 304099336
spurious link 41, ROC 25, found with index 18327 in detector 304099336
spurious link 42, ROC 25, found with index 18328 in detector 304099332
spurious link 43, ROC 25, found with index 18329 in detector 304099332
spurious link 44, ROC 25, found with index 18330 in detector 304099332
spurious link 5, ROC 25, found with index 16830 in detector 305176588
spurious link 6, ROC 25, found with index 16831 in detector 65534
spurious link 41, ROC 25, found with index 17168 in detector 65534
spurious link 42, ROC 25, found with index 17169 in detector 65534
spurious link 43, ROC 25, found with index 17170 in detector 65534
spurious link 44, ROC 25, found with index 17171 in detector 65534
spurious link 45, ROC 25, found with index 17172 in detector 65534
spurious link 46, ROC 25, found with index 17173 in detector 303050768
spurious link 47, ROC 25, found with index 17174 in detector 303050768
spurious link 48, ROC 25, found with index 17175 in detector 303050768
spurious link 0, ROC 26, found with index 42509 in detector 344274948
spurious link 9, ROC 25, found with index 1117 in detector 65534
spurious link 10, ROC 25, found with index 1118 in detector 65534
spurious link 11, ROC 25, found with index 1119 in detector 65534
spurious link 41, ROC 25, found with index 28254 in detector 65534
spurious link 42, ROC 25, found with index 28255 in detector 65534
spurious link 9, ROC 25, found with index 9028 in detector 65534
spurious link 10, ROC 25, found with index 9029 in detector 65534
spurious link 11, ROC 25, found with index 9030 in detector 65534
spurious link 12, ROC 25, found with index 9031 in detector 65534
spurious link 13, ROC 25, found with index 9032 in detector 65534
spurious link 14, ROC 25, found with index 9033 in detector 65534
spurious link 15, ROC 25, found with index 9034 in detector 65534
spurious link 16, ROC 25, found with index 9035 in detector 65534
spurious link 17, ROC 25, found with index 9036 in detector 65534
spurious link 18, ROC 25, found with index 9037 in detector 65534
spurious link 19, ROC 25, found with index 9038 in detector 65534
spurious link 20, ROC 25, found with index 9039 in detector 65534
spurious link 21, ROC 25, found with index 9040 in detector 65534
spurious link 22, ROC 25, found with index 9041 in detector 305287196
spurious link 23, ROC 25, found with index 9042 in detector 305287196
spurious link 24, ROC 25, found with index 9043 in detector 305287200
spurious link 45, ROC 25, found with index 1788 in detector 304107552
spurious link 46, ROC 25, found with index 1789 in detector 304103448
spurious link 47, ROC 25, found with index 1790 in detector 304103448
spurious link 48, ROC 25, found with index 1791 in detector 304103448
spurious link 9, ROC 25, found with index 16867 in detector 65534
spurious link 10, ROC 25, found with index 16868 in detector 65534
spurious link 11, ROC 25, found with index 16869 in detector 65534
spurious link 12, ROC 25, found with index 16870 in detector 65534
spurious link 13, ROC 25, found with index 16871 in detector 65534
spurious link 14, ROC 25, found with index 16872 in detector 65534
spurious link 15, ROC 25, found with index 16873 in detector 65534
spurious link 16, ROC 25, found with index 16874 in detector 65534
spurious link 17, ROC 25, found with index 16875 in detector 65534
spurious link 18, ROC 25, found with index 16876 in detector 65534
spurious link 19, ROC 25, found with index 16877 in detector 65534
spurious link 20, ROC 25, found with index 16878 in detector 65534
spurious link 21, ROC 25, found with index 16879 in detector 65534
spurious link 22, ROC 25, found with index 16880 in detector 305168392
spurious link 23, ROC 25, found with index 16881 in detector 305168392
spurious link 24, ROC 25, found with index 16882 in detector 305168388
spurious link 13, ROC 25, found with index 4340 in detector 304119828
spurious link 14, ROC 25, found with index 4341 in detector 306253852
spurious link 15, ROC 25, found with index 4342 in detector 306253852
spurious link 16, ROC 25, found with index 4343 in detector 306253856
spurious link 17, ROC 25, found with index 11930 in detector 65534
spurious link 18, ROC 25, found with index 11931 in detector 65534
spurious link 19, ROC 25, found with index 11932 in detector 65534
spurious link 20, ROC 25, found with index 11933 in detector 65534
spurious link 21, ROC 25, found with index 11934 in detector 65534
spurious link 22, ROC 25, found with index 11935 in detector 65534
spurious link 41, ROC 25, found with index 20886 in detector 65534
spurious link 42, ROC 25, found with index 20887 in detector 65534
spurious link 43, ROC 25, found with index 20888 in detector 65534
spurious link 44, ROC 25, found with index 20889 in detector 65534
spurious link 45, ROC 25, found with index 20890 in detector 65534
spurious link 46, ROC 25, found with index 20891 in detector 303054864
spurious link 47, ROC 25, found with index 20892 in detector 303054864
spurious link 48, ROC 25, found with index 20893 in detector 303054864
spurious link 0, ROC 26, found with index 46939 in detector 344389636
spurious link 28, ROC 25, found with index 23872 in detector 65534
spurious link 29, ROC 25, found with index 23873 in detector 65534
spurious link 30, ROC 25, found with index 23874 in detector 65534
spurious link 31, ROC 25, found with index 23875 in detector 65534
spurious link 32, ROC 25, found with index 23876 in detector 65534
spurious link 33, ROC 25, found with index 23877 in detector 65534
spurious link 34, ROC 25, found with index 23878 in detector 65534
spurious link 35, ROC 25, found with index 23879 in detector 65534
spurious link 36, ROC 25, found with index 23880 in detector 65534
spurious link 37, ROC 25, found with index 23881 in detector 65534
spurious link 38, ROC 25, found with index 23882 in detector 65534
spurious link 39, ROC 25, found with index 23883 in detector 65534
spurious link 40, ROC 25, found with index 23884 in detector 65534
spurious link 41, ROC 25, found with index 23885 in detector 65534
spurious link 42, ROC 25, found with index 23886 in detector 65534
spurious link 43, ROC 25, found with index 23887 in detector 65534
spurious link 44, ROC 25, found with index 23888 in detector 65534
spurious link 45, ROC 25, found with index 23889 in detector 65534
spurious link 46, ROC 25, found with index 23890 in detector 65534
spurious link 47, ROC 25, found with index 23891 in detector 65534
spurious link 48, ROC 25, found with index 23892 in detector 65534
spurious link 0, ROC 26, found with index 23893 in detector 305221636
spurious link 41, ROC 25, found with index 12922 in detector 65534
spurious link 42, ROC 25, found with index 12923 in detector 65534
spurious link 43, ROC 25, found with index 12924 in detector 65534
spurious link 44, ROC 25, found with index 12925 in detector 65534
spurious link 45, ROC 25, found with index 12926 in detector 65534
spurious link 46, ROC 25, found with index 12927 in detector 303071252
spurious link 9, ROC 25, found with index 12786 in detector 65534
spurious link 10, ROC 25, found with index 12787 in detector 65534
spurious link 11, ROC 25, found with index 12788 in detector 65534
spurious link 12, ROC 25, found with index 12789 in detector 65534
spurious link 13, ROC 25, found with index 12790 in detector 65534
spurious link 14, ROC 25, found with index 12791 in detector 65534
spurious link 15, ROC 25, found with index 12792 in detector 65534
spurious link 16, ROC 25, found with index 12793 in detector 65534
spurious link 17, ROC 25, found with index 12794 in detector 65534
spurious link 18, ROC 25, found with index 12795 in detector 65534
spurious link 19, ROC 25, found with index 12796 in detector 65534
spurious link 20, ROC 25, found with index 12797 in detector 65534
spurious link 21, ROC 25, found with index 12798 in detector 65534
spurious link 22, ROC 25, found with index 12799 in detector 305258524
spurious link 9, ROC 25, found with index 20683 in detector 65534
spurious link 10, ROC 25, found with index 20684 in detector 65534
spurious link 11, ROC 25, found with index 20685 in detector 65534
spurious link 12, ROC 25, found with index 20686 in detector 65534
spurious link 13, ROC 25, found with index 20687 in detector 65534
spurious link 14, ROC 25, found with index 20688 in detector 65534
spurious link 15, ROC 25, found with index 20689 in detector 65534
spurious link 16, ROC 25, found with index 20690 in detector 65534
spurious link 17, ROC 25, found with index 20691 in detector 65534
spurious link 18, ROC 25, found with index 20692 in detector 65534
spurious link 19, ROC 25, found with index 20693 in detector 65534
spurious link 20, ROC 25, found with index 20694 in detector 65534
spurious link 21, ROC 25, found with index 20695 in detector 65534
spurious link 22, ROC 25, found with index 20696 in detector 305197064
spurious link 23, ROC 25, found with index 20697 in detector 305197064
spurious link 24, ROC 25, found with index 20698 in detector 305197060
spurious link 9, ROC 25, found with index 5145 in detector 65534
spurious link 10, ROC 25, found with index 5146 in detector 65534
spurious link 11, ROC 25, found with index 5147 in detector 65534
spurious link 12, ROC 25, found with index 5148 in detector 65534
spurious link 13, ROC 25, found with index 5149 in detector 65534
spurious link 14, ROC 25, found with index 5150 in detector 65534
spurious link 15, ROC 25, found with index 5151 in detector 65534
spurious link 17, ROC 25, found with index 23861 in detector 65534
spurious link 18, ROC 25, found with index 23862 in detector 65534
spurious link 19, ROC 25, found with index 23863 in detector 65534
spurious link 20, ROC 25, found with index 23864 in detector 65534
spurious link 21, ROC 25, found with index 23865 in detector 65534
spurious link 22, ROC 25, found with index 23866 in detector 65534
spurious link 23, ROC 25, found with index 23867 in detector 65534
spurious link 24, ROC 25, found with index 23868 in detector 65534
spurious link 25, ROC 25, found with index 23869 in detector 65534
spurious link 26, ROC 25, found with index 23870 in detector 65534
spurious link 27, ROC 25, found with index 23871 in detector 65534
spurious link 0, ROC 26, found with index 32287 in detector 352602116
spurious link 23, ROC 25, found with index 11936 in detector 65534
spurious link 24, ROC 25, found with index 11937 in detector 65534
spurious link 25, ROC 25, found with index 11938 in detector 65534
spurious link 26, ROC 25, found with index 11939 in detector 65534
spurious link 27, ROC 25, found with index 11940 in detector 65534
spurious link 28, ROC 25, found with index 11941 in detector 65534
spurious link 29, ROC 25, found with index 11942 in detector 65534
spurious link 30, ROC 25, found with index 11943 in detector 65534
spurious link 31, ROC 25, found with index 11944 in detector 65534
spurious link 32, ROC 25, found with index 11945 in detector 65534
spurious link 33, ROC 25, found with index 11946 in detector 65534
spurious link 34, ROC 25, found with index 11947 in detector 65534
spurious link 35, ROC 25, found with index 11948 in detector 65534
spurious link 36, ROC 25, found with index 11949 in detector 65534
spurious link 37, ROC 25, found with index 11950 in detector 65534
spurious link 38, ROC 25, found with index 11951 in detector 65534
spurious link 39, ROC 25, found with index 11952 in detector 65534
spurious link 40, ROC 25, found with index 11953 in detector 65534
spurious link 41, ROC 25, found with index 11954 in detector 65534
spurious link 42, ROC 25, found with index 11955 in detector 65534
spurious link 43, ROC 25, found with index 11956 in detector 65534
spurious link 44, ROC 25, found with index 11957 in detector 65534
spurious link 45, ROC 25, found with index 11958 in detector 65534
spurious link 46, ROC 25, found with index 11959 in detector 65534
spurious link 47, ROC 25, found with index 11960 in detector 65534
spurious link 48, ROC 25, found with index 11961 in detector 65534
spurious link 33, ROC 25, found with index 4192 in detector 65534
spurious link 34, ROC 25, found with index 4193 in detector 65534
spurious link 35, ROC 25, found with index 4194 in detector 65534
spurious link 36, ROC 25, found with index 4195 in detector 65534
spurious link 37, ROC 25, found with index 4196 in detector 65534
spurious link 38, ROC 25, found with index 4197 in detector 65534
spurious link 39, ROC 25, found with index 4198 in detector 65534
spurious link 40, ROC 25, found with index 4199 in detector 65534
spurious link 41, ROC 25, found with index 4200 in detector 65534
spurious link 42, ROC 25, found with index 4201 in detector 65534
spurious link 43, ROC 25, found with index 4202 in detector 65534
spurious link 44, ROC 25, found with index 4203 in detector 65534
spurious link 45, ROC 25, found with index 4204 in detector 65534
spurious link 46, ROC 25, found with index 4205 in detector 65534
spurious link 47, ROC 25, found with index 4206 in detector 65534
spurious link 48, ROC 25, found with index 4207 in detector 65534
spurious link 9, ROC 25, found with index 24657 in detector 65534
spurious link 10, ROC 25, found with index 24658 in detector 65534
spurious link 11, ROC 25, found with index 24659 in detector 65534
spurious link 12, ROC 25, found with index 24660 in detector 65534
spurious link 13, ROC 25, found with index 24661 in detector 65534
spurious link 14, ROC 25, found with index 24662 in detector 65534
spurious link 15, ROC 25, found with index 24663 in detector 65534
spurious link 16, ROC 25, found with index 24664 in detector 65534
spurious link 17, ROC 25, found with index 24665 in detector 65534
spurious link 18, ROC 25, found with index 24666 in detector 65534
spurious link 19, ROC 25, found with index 24667 in detector 65534
spurious link 20, ROC 25, found with index 24668 in detector 65534
spurious link 21, ROC 25, found with index 24669 in detector 65534
spurious link 22, ROC 25, found with index 24670 in detector 305287176
spurious link 23, ROC 25, found with index 24671 in detector 305287176
spurious link 37, ROC 25, found with index 43039 in detector 344594436
spurious link 17, ROC 25, found with index 19755 in detector 65534
spurious link 18, ROC 25, found with index 19756 in detector 65534
spurious link 19, ROC 25, found with index 19757 in detector 65534
spurious link 20, ROC 25, found with index 19758 in detector 65534
spurious link 21, ROC 25, found with index 19759 in detector 65534
spurious link 22, ROC 25, found with index 19760 in detector 65534
spurious link 23, ROC 25, found with index 19761 in detector 65534
spurious link 24, ROC 25, found with index 19762 in detector 65534
spurious link 25, ROC 25, found with index 19763 in detector 65534
spurious link 26, ROC 25, found with index 19764 in detector 65534
spurious link 27, ROC 25, found with index 19765 in detector 65534
spurious link 28, ROC 25, found with index 19766 in detector 65534
spurious link 29, ROC 25, found with index 19767 in detector 65534
spurious link 30, ROC 25, found with index 19768 in detector 65534
spurious link 31, ROC 25, found with index 19769 in detector 65534
spurious link 32, ROC 25, found with index 19770 in detector 65534
spurious link 33, ROC 25, found with index 19771 in detector 65534
spurious link 34, ROC 25, found with index 19772 in detector 65534
spurious link 35, ROC 25, found with index 19773 in detector 65534
spurious link 36, ROC 25, found with index 19774 in detector 65534
spurious link 37, ROC 25, found with index 19775 in detector 65534
spurious link 17, ROC 25, found with index 4176 in detector 65534
spurious link 18, ROC 25, found with index 4177 in detector 65534
spurious link 19, ROC 25, found with index 4178 in detector 65534
spurious link 20, ROC 25, found with index 4179 in detector 65534
spurious link 21, ROC 25, found with index 4180 in detector 65534
spurious link 22, ROC 25, found with index 4181 in detector 65534
spurious link 23, ROC 25, found with index 4182 in detector 65534
spurious link 24, ROC 25, found with index 4183 in detector 65534
spurious link 25, ROC 25, found with index 4184 in detector 65534
spurious link 26, ROC 25, found with index 4185 in detector 65534
spurious link 27, ROC 25, found with index 4186 in detector 65534
spurious link 28, ROC 25, found with index 4187 in detector 65534
spurious link 29, ROC 25, found with index 4188 in detector 65534
spurious link 30, ROC 25, found with index 4189 in detector 65534
spurious link 31, ROC 25, found with index 4190 in detector 65534
spurious link 32, ROC 25, found with index 4191 in detector 65534
spurious link 17, ROC 25, found with index 31236 in detector 65534
spurious link 18, ROC 25, found with index 31237 in detector 65534
spurious link 19, ROC 25, found with index 31238 in detector 65534
spurious link 20, ROC 25, found with index 31239 in detector 65534
spurious link 21, ROC 25, found with index 31240 in detector 65534
spurious link 22, ROC 25, found with index 31241 in detector 65534
spurious link 23, ROC 25, found with index 31242 in detector 65534
spurious link 24, ROC 25, found with index 31243 in detector 65534
spurious link 25, ROC 25, found with index 31244 in detector 65534
spurious link 26, ROC 25, found with index 31245 in detector 65534
spurious link 27, ROC 25, found with index 31246 in detector 65534
spurious link 28, ROC 25, found with index 31247 in detector 65534
spurious link 29, ROC 25, found with index 31248 in detector 65534
spurious link 30, ROC 25, found with index 31249 in detector 65534
spurious link 31, ROC 25, found with index 31250 in detector 65534
spurious link 32, ROC 25, found with index 31251 in detector 65534
spurious link 33, ROC 25, found with index 31252 in detector 65534
spurious link 34, ROC 25, found with index 31253 in detector 65534
spurious link 35, ROC 25, found with index 31254 in detector 65534
spurious link 36, ROC 25, found with index 31255 in detector 65534
spurious link 37, ROC 25, found with index 31256 in detector 65534
spurious link 38, ROC 25, found with index 31257 in detector 65534
spurious link 39, ROC 25, found with index 31258 in detector 65534
spurious link 40, ROC 25, found with index 31259 in detector 65534
spurious link 41, ROC 25, found with index 31260 in detector 65534
spurious link 42, ROC 25, found with index 31261 in detector 65534
spurious link 43, ROC 25, found with index 31262 in detector 65534
spurious link 44, ROC 25, found with index 31263 in detector 65534
spurious link 17, ROC 25, found with index 15846 in detector 65534
spurious link 18, ROC 25, found with index 15847 in detector 65534
spurious link 19, ROC 25, found with index 15848 in detector 65534
spurious link 20, ROC 25, found with index 15849 in detector 65534
spurious link 21, ROC 25, found with index 15850 in detector 65534
spurious link 22, ROC 25, found with index 15851 in detector 65534
spurious link 23, ROC 25, found with index 15852 in detector 65534
spurious link 24, ROC 25, found with index 15853 in detector 65534
spurious link 25, ROC 25, found with index 15854 in detector 65534
spurious link 26, ROC 25, found with index 15855 in detector 65534
spurious link 27, ROC 25, found with index 15856 in detector 65534
spurious link 28, ROC 25, found with index 15857 in detector 65534
spurious link 29, ROC 25, found with index 15858 in detector 65534
spurious link 30, ROC 25, found with index 15859 in detector 65534
spurious link 31, ROC 25, found with index 15860 in detector 65534
spurious link 32, ROC 25, found with index 15861 in detector 65534
spurious link 33, ROC 25, found with index 15862 in detector 65534
spurious link 34, ROC 25, found with index 15863 in detector 65534
spurious link 35, ROC 25, found with index 15864 in detector 65534
spurious link 36, ROC 25, found with index 15865 in detector 65534
spurious link 37, ROC 25, found with index 15866 in detector 65534
spurious link 38, ROC 25, found with index 15867 in detector 65534
spurious link 39, ROC 25, found with index 15868 in detector 65534
spurious link 40, ROC 25, found with index 15869 in detector 65534
spurious link 41, ROC 25, found with index 15870 in detector 65534
spurious link 42, ROC 25, found with index 15871 in detector 65534
spurious link 17, ROC 25, found with index 27107 in detector 65534
spurious link 18, ROC 25, found with index 27108 in detector 65534
spurious link 19, ROC 25, found with index 27109 in detector 65534
spurious link 20, ROC 25, found with index 27110 in detector 65534
spurious link 21, ROC 25, found with index 27111 in detector 65534
spurious link 22, ROC 25, found with index 27112 in detector 65534
spurious link 23, ROC 25, found with index 27113 in detector 65534
spurious link 24, ROC 25, found with index 27114 in detector 65534
spurious link 25, ROC 25, found with index 27115 in detector 65534
spurious link 26, ROC 25, found with index 27116 in detector 65534
spurious link 27, ROC 25, found with index 27117 in detector 65534
spurious link 28, ROC 25, found with index 27118 in detector 65534
spurious link 29, ROC 25, found with index 27119 in detector 65534
spurious link 30, ROC 25, found with index 27120 in detector 65534
spurious link 31, ROC 25, found with index 27121 in detector 65534
spurious link 32, ROC 25, found with index 27122 in detector 65534
spurious link 33, ROC 25, found with index 27123 in detector 65534
spurious link 34, ROC 25, found with index 27124 in detector 65534
spurious link 35, ROC 25, found with index 27125 in detector 65534
spurious link 36, ROC 25, found with index 27126 in detector 65534
spurious link 37, ROC 25, found with index 27127 in detector 65534
spurious link 38, ROC 25, found with index 27128 in detector 65534
spurious link 39, ROC 25, found with index 27129 in detector 65534
spurious link 40, ROC 25, found with index 27130 in detector 65534
spurious link 41, ROC 25, found with index 27131 in detector 65534
spurious link 42, ROC 25, found with index 27132 in detector 65534
spurious link 43, ROC 25, found with index 27133 in detector 65534
spurious link 44, ROC 25, found with index 27134 in detector 65534
spurious link 45, ROC 25, found with index 27135 in detector 65534
spurious link 17, ROC 25, found with index 8162 in detector 65534
spurious link 18, ROC 25, found with index 8163 in detector 65534
spurious link 19, ROC 25, found with index 8164 in detector 65534
spurious link 20, ROC 25, found with index 8165 in detector 65534
spurious link 21, ROC 25, found with index 8166 in detector 65534
spurious link 22, ROC 25, found with index 8167 in detector 65534
spurious link 23, ROC 25, found with index 8168 in detector 65534
spurious link 24, ROC 25, found with index 8169 in detector 65534
spurious link 25, ROC 25, found with index 8170 in detector 65534
spurious link 26, ROC 25, found with index 8171 in detector 65534
spurious link 27, ROC 25, found with index 8172 in detector 65534
spurious link 28, ROC 25, found with index 8173 in detector 65534
spurious link 29, ROC 25, found with index 8174 in detector 65534
spurious link 30, ROC 25, found with index 8175 in detector 65534
spurious link 31, ROC 25, found with index 8176 in detector 65534
spurious link 32, ROC 25, found with index 8177 in detector 65534
spurious link 33, ROC 25, found with index 8178 in detector 65534
spurious link 34, ROC 25, found with index 8179 in detector 65534
spurious link 35, ROC 25, found with index 8180 in detector 65534
spurious link 36, ROC 25, found with index 8181 in detector 65534
spurious link 37, ROC 25, found with index 8182 in detector 65534
spurious link 38, ROC 25, found with index 8183 in detector 65534
spurious link 39, ROC 25, found with index 8184 in detector 65534
spurious link 40, ROC 25, found with index 8185 in detector 65534
spurious link 41, ROC 25, found with index 8186 in detector 65534
spurious link 42, ROC 25, found with index 8187 in detector 65534
spurious link 43, ROC 25, found with index 8188 in detector 65534
spurious link 44, ROC 25, found with index 8189 in detector 65534
spurious link 45, ROC 25, found with index 8190 in detector 65534
spurious link 46, ROC 25, found with index 8191 in detector 65534
Begin processing the 143rd record. Run 360019, Event 1239592137, LumiSection 611 on stream 0 at 12-Oct-2022 15:37:38.639 CEST
...

Does this really make sense ?

@fwyzard
Copy link
Contributor

fwyzard commented Oct 12, 2022

Also, should the check be

if (roc > MAX_ROC or link > MAX_LINK)
  continue;

or

if (roc >= MAX_ROC or link > MAX_LINK)
  continue;

?

link is used as link - 1 in

uint32_t index = fedId * MAX_LINK * MAX_ROC + (link - 1) * MAX_ROC + roc;

while roc is used as-is.

@VinInn
Copy link
Contributor

VinInn commented Oct 12, 2022

too early. The check should go AFTER the error decoding

@VinInn
Copy link
Contributor

VinInn commented Oct 12, 2022

MAX_ROC is 8 and rocs are numbered from 1 to 8
link from 1 to MAX_LINK.

@VinInn
Copy link
Contributor

VinInn commented Oct 12, 2022

maybe the check should go in checkROC (but then one should "invent a new error code.....")

@fwyzard
Copy link
Contributor

fwyzard commented Oct 12, 2022

The original error stream file

/store/error_stream/run357271/run357271_ls1351_index000134_fu-c2b03-14-01_pid4069417.raw

is no longer there :-/

@missirol
Copy link
Contributor Author

True.. it can still be found at

/eos/cms/store/group/dpg_trigger/comm_trigger/TriggerStudiesGroup/FOG/error_stream/run357271/run357271_ls1351_index000134_fu-c2b03-14-01_pid4069417.raw

@fwyzard
Copy link
Contributor

fwyzard commented Oct 12, 2022

Thanks Marino, and thanks Vincenzo for the suggestions. After moving the check lower in the code now I get

...
Begin processing the 20th record. Run 357271, Event 2627443573, LumiSection 1351 on stream 0 at 12-Oct-2022 17:23:54.632 CEST
Begin processing the 21st record. Run 357271, Event 2627443574, LumiSection 1351 on stream 0 at 12-Oct-2022 17:23:54.914 CEST
Begin processing the 22nd record. Run 357271, Event 2627443575, LumiSection 1351 on stream 0 at 12-Oct-2022 17:23:55.075 CEST
Begin processing the 23rd record. Run 357271, Event 2627443576, LumiSection 1351 on stream 0 at 12-Oct-2022 17:23:55.365 CEST
Begin processing the 24th record. Run 357271, Event 2627443577, LumiSection 1351 on stream 0 at 12-Oct-2022 17:23:55.966 CEST
spurious link 41, ROC 9, found with index 39696 in detector 344794116
spurious link 41, ROC 9, found with index 39697 in detector 344794116
spurious link 41, ROC 10, found with index 39698 in detector 344794116
spurious link 41, ROC 10, found with index 39699 in detector 344794116
spurious link 41, ROC 10, found with index 39700 in detector 344794116
spurious link 41, ROC 10, found with index 39701 in detector 344794116
spurious link 41, ROC 12, found with index 39702 in detector 344794116
spurious link 41, ROC 12, found with index 39703 in detector 344794116
spurious link 41, ROC 12, found with index 39704 in detector 344794116
spurious link 41, ROC 16, found with index 39705 in detector 344794116
spurious link 41, ROC 16, found with index 39706 in detector 344794116
spurious link 41, ROC 17, found with index 39707 in detector 344795140
spurious link 41, ROC 17, found with index 39708 in detector 344795140
%MSG-w SiPixelFrameConverter:  SiPixelRawToDigi:hltSiPixelDigisRegForDisplaced  12-Oct-2022 17:23:56 CEST Run: 357271 Event: 2627443577
Map shows no fed=1326, link=41, roc=9
%MSG
%MSG-w SiPixelFrameConverter:  SiPixelRawToDigi:hltSiPixelDigisRegForDisplaced  12-Oct-2022 17:23:56 CEST Run: 357271 Event: 2627443577
Map shows no fed=1326, link=41, roc=10
%MSG
%MSG-w SiPixelFrameConverter:  SiPixelRawToDigi:hltSiPixelDigisRegForDisplaced  12-Oct-2022 17:23:56 CEST Run: 357271 Event: 2627443577
Map shows no fed=1326, link=41, roc=12
%MSG
%MSG-w SiPixelFrameConverter:  SiPixelRawToDigi:hltSiPixelDigisRegForDisplaced  12-Oct-2022 17:23:56 CEST Run: 357271 Event: 2627443577
Map shows no fed=1326, link=41, roc=16
%MSG
%MSG-w SiPixelFrameConverter:  SiPixelRawToDigi:hltSiPixelDigisRegForDisplaced  12-Oct-2022 17:23:56 CEST Run: 357271 Event: 2627443577
Map shows no fed=1326, link=41, roc=17
%MSG
Begin processing the 25th record. Run 357271, Event 2627443578, LumiSection 1351 on stream 0 at 12-Oct-2022 17:23:56.378 CEST
Begin processing the 26th record. Run 357271, Event 2627443579, LumiSection 1351 on stream 0 at 12-Oct-2022 17:23:56.485 CEST
Begin processing the 27th record. Run 357271, Event 2627443580, LumiSection 1351 on stream 0 at 12-Oct-2022 17:23:56.609 CEST
Begin processing the 28th record. Run 357271, Event 2627443581, LumiSection 1351 on stream 0 at 12-Oct-2022 17:23:56.715 CEST
Begin processing the 29th record. Run 357271, Event 2627443582, LumiSection 1351 on stream 0 at 12-Oct-2022 17:23:57.113 CEST
Begin processing the 30th record. Run 357271, Event 2627443583, LumiSection 1351 on stream 0 at 12-Oct-2022 17:23:57.363 CEST
...

So the check seems consistent with the legacy unpacker.

@mmusich
Copy link
Contributor

mmusich commented Oct 12, 2022

In August of last year I privately emailed Danek about fed=1326, link=41, roc=9 after Marco Musich reported seeing these warnings when privately re-recoing CRUZET data. The answer from Danek was:

can't be anything done on the pixel f/w side?

@fwyzard
Copy link
Contributor

fwyzard commented Oct 12, 2022

I've opened #39711, #39712, #39713 with a possible fix and its backports.

@rappoccio
Copy link
Contributor

rappoccio commented Oct 14, 2022

Status as of today: #39711 is merged, will wait for IBs this evening and then merge the 12_4 PR when completed, and cut a 12_4_10_patch1.

@perrotta
Copy link
Contributor

By the way, the release is ready now: https://github.com/cms-sw/cmssw/releases/tag/CMSSW_12_4_10_patch1

@missirol
Copy link
Contributor Author

Thanks for building the release, @cms-sw/orp-l2 .

Attn: @trtomei @silviodonato

@perrotta
Copy link
Contributor

perrotta commented Nov 2, 2022

@missirol, can this be considered fixed, and therefore close the issue?

@missirol
Copy link
Contributor Author

missirol commented Nov 2, 2022

I think so, but it would be good to have signature/confirmation from experts, e.g. @cms-sw/heterogeneous-l2 @cms-sw/trk-dpg-l2 .

(in any case, I'll close it by the end of the week)

@fwyzard
Copy link
Contributor

fwyzard commented Nov 2, 2022

+heterogeneous

@missirol
Copy link
Contributor Author

missirol commented Nov 3, 2022

please close

@cmsbuild cmsbuild closed this as completed Nov 3, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests