View Issue Details

IDProjectCategoryView StatusLast Update
0023983Open CASCADEOCCT:Testspublic2015-05-14 15:32
Reporterapn Assigned Tobugmaster  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
PlatformWindowsOSVC++ 2008 
Product Version6.6.0 
Target Version6.9.0Fixed in Version6.9.0 
Summary0023983: Cpulimit doesn't kill test cases
DescriptionProblem is reproduced on product testgroup emesh/standard.
Begin file contains "cpulimit 1000", but some cases is not killed and they hang and execute by hours.
TagsNo tags attached.
Test case numberNot needed

Activities

abv

2013-05-22 12:53

manager   ~0024461

Please indicate which particular tests exhibit this problem, whether this behavior is reproduced on master or in some branch, is it regular or random, and provide other relevant details if you know.

apn

2013-05-23 12:29

administrator   ~0024487

Last edited: 2013-05-29 13:13

This problem is reproduced on Windows platform in random mode on all testing branches. Various tests exhibit this problem (A7, A8, B4, etc). Every time process hangs on various test cases.
test grids:
emesh standard
dxf doc_2
sat doc_1

abv

2013-05-31 08:15

manager   ~0024575

As we discussed, most likely cpulimit command does not kill the process because it does not run CPU, possibly waiting for some event or entering deadlock. Taking that this happens in product tests only, but in different groups, the license module should be suspected first.

Hence my proposal is:

1. To extend cpulimit command so that it controls also (or instead?) elapsed time

2. To investigate (debug) hanging test cases and fix the hang-up reason

szv

2013-05-31 14:21

manager   ~0024582

Would it be possible next time some test hangs to attach a debugger to the process and let me check what happens?

apn

2013-06-04 12:49

administrator   ~0024626

Last edited: 2013-06-04 12:49

I've modified command cpulimit and tested it on group emesh. Tests were killed by elapsed time. Please, could you review this changes?
Changes are in branch CR23983.

abv

2013-06-07 08:58

manager   ~0024683

Please change the code to allow for resetting the elapsed timer (as it is done for CPU timer). In your current version, OSD_Timer runs inside CpuFunc and never reset. I suggest it should be made a global variable (instead of ELAP_CURRENT, now unused) and reset + started in cpulimit function.

Further please enable elapsed time control on Linux.

Minor remarks:
- Replace 'ELAP' by 'elapsed' in messages
- The code has extra indentation around line 415 and below; please adjust
- There is no need to have ELAP_LIMIT as separate variable, as it is always equal to CPU_LIMIT

git

2014-10-31 12:54

administrator   ~0033933

Branch CR23983 has been updated forcibly by ski.

SHA-1: c342cd37d6663c92071048240c0f51369c06821a

git

2014-10-31 14:20

administrator   ~0033945

Branch CR23983 has been updated forcibly by ski.

SHA-1: 4b84cfd5ecd9e7e3cc9bc779dc1aa152e42454fe

ski

2014-10-31 14:23

developer   ~0033946

Elapsed time control on Linux was enabled.

Remarks were applied (resetting of elapsed timer, unused variables were removed)

Changes are located in branch CR23983
Please, review.

abv

2014-12-02 09:54

manager   ~0034900

Reviewed, please test.

Minor remarks: instance of OSD_Timer is defined before inclusion of OSD_Timer.hxx, this means (if the code compiles) that that inclusion is unnecessary. Definition of aTimer should be better moved to lines ~ 64 where other static vars are defined.

git

2014-12-02 11:36

administrator   ~0034904

Branch CR23983 has been updated forcibly by ski.

SHA-1: dd792688eadd879149f8b594b4c4726921ce7b37

git

2014-12-02 12:00

administrator   ~0034906

Branch CR23983 has been updated forcibly by apv.

SHA-1: b787f41a9407b863c4c573b3abb453072cd44039

apv

2014-12-02 12:01

tester   ~0034907

Branch CR23983 has been rebased on the current master

git

2014-12-02 19:40

administrator   ~0034943

Branch CR23983 has been updated by ski.

SHA-1: 7c08ddb6dc2b49641cd4e50d65aab3d8702a95b8


Detailed log of new commits:

Author: ski
Date: Tue Dec 2 19:39:24 2014 +0300

    Correction of thread terminating on linux.

apv

2014-12-03 14:27

tester   ~0034970

Dear BugMaster,

Branch CR23983 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
SHA-1: 7c08ddb6dc2b49641cd4e50d65aab3d8702a95b8

Number of compiler warnings:
occt component:
   Linux: 18 (18 on master)
   Windows: 0 (0 on master)
products component :
   Linux: 11 (11 on master)
   Windows: 0 (1 on master)

Regressions/Differences:
Not detected

Testing cases:
Not needed

Testing on Linux:
Total MEMORY difference: 363441172 / 363569648
Total CPU difference: 46738.29000000009 / 47718.53000000004

Testing on Windows:
Total MEMORY difference: 277345112 / 276568708
Total CPU difference: 36345.484375 / 40656.6875

git

2015-01-26 12:36

administrator   ~0036602

Branch CR23983 has been deleted by inv.

SHA-1: 7c08ddb6dc2b49641cd4e50d65aab3d8702a95b8

Related Changesets

occt: master 0b309a75

2014-12-04 12:09:23

ski


Committer: bugmaster Details Diff
0023983: Cpulimit doesn't kill test cases

Modified command cpulimit using OSD_Timer and method ElapsedTime()

Enabled elapsed time control on Linux.

Added resetting of elapsed timer.

Unused variables were removed

Definition of OSD_Timer aTimer was replaced.

Correction of thread terminating on linux.
Affected Issues
0023983
mod - src/Draw/Draw_BasicCommands.cxx Diff File

Issue History

Date Modified Username Field Change
2013-05-22 12:43 apn New Issue
2013-05-22 12:43 apn Assigned To => mkv
2013-05-22 12:43 apn Assigned To mkv => isn
2013-05-22 12:43 apn Status new => assigned
2013-05-22 12:53 abv Note Added: 0024461
2013-05-22 12:53 abv Assigned To isn => mkv
2013-05-22 12:53 abv Status assigned => feedback
2013-05-22 12:54 abv Assigned To mkv => apn
2013-05-23 12:29 apn Note Added: 0024487
2013-05-23 12:30 apn Assigned To apn => abv
2013-05-29 13:13 apn Note Edited: 0024487
2013-05-31 08:15 abv Note Added: 0024575
2013-05-31 08:15 abv Assigned To abv => szv
2013-05-31 08:15 abv Status feedback => assigned
2013-05-31 14:21 szv Note Added: 0024582
2013-05-31 14:21 szv Assigned To szv => mkv
2013-05-31 14:21 szv Status assigned => feedback
2013-06-04 12:49 apn Note Added: 0024626
2013-06-04 12:49 apn Note Edited: 0024626
2013-06-04 12:50 apn Assigned To mkv => abv
2013-06-07 08:58 abv Note Added: 0024683
2013-06-07 08:58 abv Assigned To abv => apn
2013-06-07 08:58 abv Status feedback => assigned
2013-12-20 09:04 kgv Target Version 6.7.0 => 6.7.1
2014-04-04 18:27 abv Target Version 6.7.1 => 6.8.0
2014-09-26 10:58 abv Target Version 6.8.0 => 7.1.0
2014-10-31 12:54 git Note Added: 0033933
2014-10-31 14:20 git Note Added: 0033945
2014-10-31 14:23 ski Note Added: 0033946
2014-10-31 14:23 ski Assigned To apn => abv
2014-10-31 14:23 ski Status assigned => resolved
2014-12-02 09:54 abv Note Added: 0034900
2014-12-02 09:54 abv Assigned To abv => bugmaster
2014-12-02 09:54 abv Status resolved => reviewed
2014-12-02 11:10 apv Assigned To bugmaster => apv
2014-12-02 11:36 git Note Added: 0034904
2014-12-02 12:00 git Note Added: 0034906
2014-12-02 12:01 apv Note Added: 0034907
2014-12-02 19:40 git Note Added: 0034943
2014-12-03 14:27 apv Note Added: 0034970
2014-12-03 14:27 apv Assigned To apv => bugmaster
2014-12-03 14:27 apv Status reviewed => tested
2014-12-03 14:27 apv Test case number => Not needed
2014-12-05 14:42 bugmaster Changeset attached => occt master 0b309a75
2014-12-05 14:42 bugmaster Status tested => verified
2014-12-05 14:42 bugmaster Resolution open => fixed
2015-01-19 16:23 bugmaster Target Version 7.1.0 => 6.9.0
2015-01-26 12:36 git Note Added: 0036602
2015-05-14 15:29 aiv Status verified => closed
2015-05-14 15:32 aiv Fixed in Version => 6.9.0