Ticket #8028 (closed: fixed)

Opened 7 years ago

Last modified 5 years ago

Fix Windows 7 (Debug) Build on Jenkins

Reported by: Peter Parker Owned by: Peter Parker
Priority: major Milestone: Release 3.0
Component: Framework Keywords:
Cc: Blocked By:
Blocking: Tester: Russell Taylor

Description

This build was introduced recently and has been failing ever since.

There are three problematic tests:

  • AlgorithmsTest.FindPeaksTest
  • AlgorithmsTest.StripVanadiumPeaks2Test
  • CrystalTest.MaskPeaksWorkspaceTest

Jenkins is low on details but a run of the VS debugger seems to suggest that these are just related to iterators / indexes being out of bounds. Hopefully, relatively easy to fix.

Change History

comment:1 Changed 7 years ago by Peter Parker

  • Status changed from new to inprogress

Refs #8028 - Avoid dereferencing an end iterator.

Changeset: 0a83fb72eb69b5cfd8f5680f81f03178a2b381fb

comment:2 Changed 7 years ago by Peter Parker

Refs #8028 - Ensure map is being accessed at an existing key.

These changes pass the unit tests, but it would be good if someone who knows more about this code could take a look to double check it works as intended.

Changeset: 0ed1dec9c6fb9341e5d7933a8b4db3a8c5f4f415

comment:3 Changed 7 years ago by Peter Parker

Refs #8028 - Pin down debug error with unit test.

Changeset: 928873f16b7b506fd904c61ee6881ea42d658a39

comment:4 Changed 7 years ago by Peter Parker

  • Status changed from inprogress to verify
  • Resolution set to fixed

Resolving as fixed.

Vickie confirmed that changeset 0ed1dec9c6fb9341e5d7933a8b4db3a8c5f4f415 was reasonable.

The three unit tests pass on my machine, hopefully that will fix the build on Jenkins.

Tester: make sure the Windows Debug build is passing.

comment:5 Changed 7 years ago by Vickie Lynch

Refs #8028 fix system test broken by this ticket

Changeset: b6f3c2b61a95856955b6aed7efe247ce9b970e06

comment:6 Changed 7 years ago by Peter Parker

  • Status changed from verify to reopened
  • Resolution fixed deleted

I'm reopening this ticket, since PointByPointVCorrectionTest failed this morning.

It appears to be a multi threading issue. Sometimes the test fails and sometimes it passes.

@Vickie, I can't seem to see the changeset in comment 5. Was that part of this ticket, or added by mistake?

comment:7 Changed 7 years ago by Peter Parker

  • Status changed from reopened to inprogress

Refs #8028 - Fix sporadically-failing unit test.

  • Replaced buggy use of std::bind2nd within PARRELLEL macros.
  • Removed unnecessary call to a workspace's dataX() method.

Changeset: 8880bcc23fac78bc1768eb5ac5c763be5d071b1a

Last edited 7 years ago by Peter Parker (previous) (diff)

comment:8 Changed 7 years ago by Peter Parker

Refs #8028 - Skip python unit test on Windows Debug only.

Since we cannot easily support sqlite3 on Windows in Debug, just skip this single test if we can't import sqlite3.

Also removed redundant import check at start of file, since it gets checked in the "test_imports" method later.

Changeset: dc00612ef1b82401ca24ce65adc0cc187ff791ec

comment:9 Changed 7 years ago by Peter Parker

Refs #8028 - Manually skip test rather than use skipIf decorator.

"skipIf" was only introduced in Python version 2.7, so we have to skip the test manually since we have an older version of Python on our RHEL 6 build.

Changeset: d091b6f48189145f458e00c2cfc39bdec59ad4c5

comment:10 Changed 7 years ago by Peter Parker

Refs #8028 - Remove files I added accidentally.

A "git add ." caught some files I had in my working directory.

Changeset: 745e87f2223a5fc284ade3976913f1863a37b32e

comment:11 Changed 7 years ago by Peter Parker

  • Status changed from inprogress to verify
  • Resolution set to fixed

The build appears to be fully fixed now and the system tests were fixed by Vickie. Closing.

Tester:

  • Look through my changes and make sure they look appropriate.
  • Make sure to merge Vickie's system test changes if you end up passing the ticket.

comment:12 Changed 7 years ago by Russell Taylor

  • Status changed from verify to verifying
  • Tester set to Russell Taylor

comment:13 Changed 7 years ago by Russell Taylor

  • Status changed from verifying to reopened
  • Resolution fixed deleted

The change to PointByPointVCorrection.cpp at lines 88-89 means that the X values are no longer being copied into the output workspace. You need to put in something like outputWS->setX( i, inputWS->refX(i) );

It doesn't say much for the testing of this algorithm that this went unnoticed - be sure to put something in the unit test to ensure this can't happen again.

comment:14 Changed 7 years ago by Peter Parker

  • Status changed from reopened to inprogress

Refs #8028 - Ensure that X values are carried over to alg result.

  • Add setX() line as per Russell's suggestion.
  • Cover the X data with a unit test.

Changeset: 9ae2141c878b75f2ec3a313504bc5ecaf4dc40a3

comment:15 Changed 7 years ago by Peter Parker

  • Status changed from inprogress to verify
  • Resolution set to fixed

Marking as fixed again.

comment:16 Changed 7 years ago by Russell Taylor

  • Status changed from verify to verifying

comment:17 Changed 7 years ago by Russell Taylor

  • PointByPointVCorrection fix checks out
  • The Jenkins build is passing
  • I ran these tests through valgrind, which reported plenty of errors before the changes and none afterwards (not sure about MaskPeaksWorkspaceTest - that seemed OK anyway and hasn't been touched in this ticket).
  • I'm hoping this will solve the occasional failure of the CalibrateRectangularDetector_Test.PG3Calibration system test, which sometimes crashes in GetDetOffsetsMultiPeaks (which calls FindPeaks)

comment:18 Changed 7 years ago by Russell Taylor

  • Status changed from verifying to closed

Merge remote branch 'origin/feature/8028_fix_windows_7_db_build'

Full changeset: cfd8495d2578ce28fcd3b3bb48546c1b31a8b987

comment:19 Changed 7 years ago by Russell Taylor

Merge remote branch 'origin/feature/8028_fix_windows_7_db_build'

Full changeset: 59679062bff320645dc462065845ffbc5c2f34b3

comment:20 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 8873

Note: See TracTickets for help on using tickets.