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

Test failure on Linux - AL_MayaUtilsTests (SEGFAULT) #316

Closed
pmolodo opened this issue Feb 28, 2020 · 6 comments
Closed

Test failure on Linux - AL_MayaUtilsTests (SEGFAULT) #316

pmolodo opened this issue Feb 28, 2020 · 6 comments
Assignees
Labels
al Related to AnimalLogic plugin bug Something isn't working question Further information is requested unit test Related to unit tests (both python or c++)

Comments

@pmolodo
Copy link
Contributor

pmolodo commented Feb 28, 2020

Describe the bug
When running the AL_MayaUtilsTests on Linux with Maya-2019.2, the test fails (due to a segfault).

This was tested using latest dev branch.

Specifically, the tests SEEM to pass - ie, the printout reports all 36 tests pass, and it prints the green happy dinosaur... but then mayapy segfaults on exit, resulting in the test being reported as a failure.

The only way I found to consistently fix this was to set fix_linux_mayapy_segfault=on in pymel.conf, and then import pymel before running the test.

Can anyone else on Linux confirm whether they get this segfault in 2019 as well, and/or whether the problem exists in 2020 or the latest PR?

Thanks!

Steps to reproduce
Steps to reproduce the behavior:

  1. Build on Linux against maya-2019.2
  2. cd into build dir
  3. ctest -V -R AL_MayaUtilsTests

Expected behavior
Test passes / no segfault

Specs (if applicable):

  • OS & version: CentOS 7.3.1611
  • Compiler & version: gcc 6.3.1
  • Maya version: Maya-2019.2
  • Maya USD commit SHA: dev at 2c906ef
  • Pixar USD commit SHA: usd-20.02 at 7f2906f6
@pmolodo pmolodo added the bug Something isn't working label Feb 28, 2020
@HamedSabri-adsk
Copy link
Contributor

I don't see this problem on my side and all the tests pass for me fine.

    Compiler & version: gcc 6.3.1
    Maya version: Maya-2020
    Maya USD commit SHA: dev at 2c906ef
    Pixar USD commit SHA: usd-20.02 at 7f2906f6
➜  al ctest -R AL_MayaUtilsTests -VV
UpdateCTestConfiguration  from :/home/sabrih/Desktop/workspace/build/RelWithDebInfo/plugin/al/DartConfiguration.tcl
UpdateCTestConfiguration  from :/home/sabrih/Desktop/workspace/build/RelWithDebInfo/plugin/al/DartConfiguration.tcl
Test project /home/sabrih/Desktop/workspace/build/RelWithDebInfo/plugin/al
Constructing a list of tests
Done constructing a list of tests
Updating test list for fixtures
Added 0 tests to meet fixture requirements
Checking test dependency graph...
Checking test dependency graph end
test 1
    Start 1: AL_MayaUtilsTests

1: Test command: /usr/autodesk/maya2021/bin/mayapy "-c" "import sys;import maya.standalone;                                       maya.standalone.initialize(name='python');                                       maya.cmds.loadPlugin('AL_MayaUtilsTests');                                       ret=maya.mel.eval('AL_maya_test_UnitTestHarness');                                       maya.standalone.uninitialize();                                       "
1: Environment variables: 
1:  PYTHONPATH=/opt/rh/devtoolset-6/root/usr/lib64/python2.7/site-packages:/opt/rh/devtoolset-6/root/usr/lib/python2.7/site-packages:/home/sabrih/Desktop/USD2002/lib/python
1:  PATH=/home/sabrih/Desktop/workspace/install/RelWithDebInfo/plugin/al/lib:/usr/local/bin:/home/sabrih/bin:/opt/ccollab-client:/opt/rh/devtoolset-7/root/usr/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
1:  MAYA_PLUG_IN_PATH=/home/sabrih/Desktop/workspace/install/RelWithDebInfo/plugin/al/testplugins
1:  MAYA_NO_STANDALONE_ATEXIT=1
1: Test timeout computed to be: 10000000
1: Warning: At initialization event does not appear in the list of available events
1: Warning: At initialization event does not appear in the list of available events
1: Warning: At initialization event does not appear in the list of available events
1: Warning: At initialization event does not appear in the list of available events
1: [==========] Running 36 tests from 5 test suites.
1: [----------] Global test environment set-up.
1: [----------] 6 tests from maya_MenuBuilder
1: [ RUN      ] maya_MenuBuilder.simplePath
1: [       OK ] maya_MenuBuilder.simplePath (0 ms)
1: [ RUN      ] maya_MenuBuilder.sharedPath
1: [       OK ] maya_MenuBuilder.sharedPath (0 ms)
1: [ RUN      ] maya_MenuBuilder.sharedPath2
1: [       OK ] maya_MenuBuilder.sharedPath2 (0 ms)
1: [ RUN      ] maya_MenuBuilder.duplicatePath
1: [       OK ] maya_MenuBuilder.duplicatePath (0 ms)
1: [ RUN      ] maya_MenuBuilder.simpleCheckbox
1: [       OK ] maya_MenuBuilder.simpleCheckbox (0 ms)
1: [ RUN      ] maya_MenuBuilder.simpleRadioButton
1: [       OK ] maya_MenuBuilder.simpleRadioButton (0 ms)
1: [----------] 6 tests from maya_MenuBuilder (0 ms total)
1: 
1: [----------] 21 tests from maya_NodeHelper
1: [ RUN      ] maya_NodeHelper.addStringAttr
1: [       OK ] maya_NodeHelper.addStringAttr (0 ms)
1: [ RUN      ] maya_NodeHelper.addFilePathAttr
1: [       OK ] maya_NodeHelper.addFilePathAttr (1 ms)
1: [ RUN      ] maya_NodeHelper.addInt8Attr
1: [       OK ] maya_NodeHelper.addInt8Attr (0 ms)
1: [ RUN      ] maya_NodeHelper.addInt16Attr
1: [       OK ] maya_NodeHelper.addInt16Attr (0 ms)
1: [ RUN      ] maya_NodeHelper.addInt32Attr
1: [       OK ] maya_NodeHelper.addInt32Attr (0 ms)
1: [ RUN      ] maya_NodeHelper.addInt64Attr
1: [       OK ] maya_NodeHelper.addInt64Attr (1 ms)
1: [ RUN      ] maya_NodeHelper.addFloatAttr
1: [       OK ] maya_NodeHelper.addFloatAttr (0 ms)
1: [ RUN      ] maya_NodeHelper.addDoubleAttr
1: [       OK ] maya_NodeHelper.addDoubleAttr (0 ms)
1: [ RUN      ] maya_NodeHelper.addTimeAttr
1: [       OK ] maya_NodeHelper.addTimeAttr (0 ms)
1: [ RUN      ] maya_NodeHelper.addBoolAttr
1: [       OK ] maya_NodeHelper.addBoolAttr (0 ms)
1: [ RUN      ] maya_NodeHelper.addFloat3Attr
1: [       OK ] maya_NodeHelper.addFloat3Attr (1 ms)
1: [ RUN      ] maya_NodeHelper.addAngle3Attr
1: [       OK ] maya_NodeHelper.addAngle3Attr (0 ms)
1: [ RUN      ] maya_NodeHelper.addPointAttr
1: [       OK ] maya_NodeHelper.addPointAttr (0 ms)
1: [ RUN      ] maya_NodeHelper.addVectorAttr
1: [       OK ] maya_NodeHelper.addVectorAttr (1 ms)
1: [ RUN      ] maya_NodeHelper.addFloatPointAttr
1: [       OK ] maya_NodeHelper.addFloatPointAttr (0 ms)
1: [ RUN      ] maya_NodeHelper.addFloatVectorAttr
1: [       OK ] maya_NodeHelper.addFloatVectorAttr (0 ms)
1: [ RUN      ] maya_NodeHelper.addColourAttr
1: [       OK ] maya_NodeHelper.addColourAttr (1 ms)
1: [ RUN      ] maya_NodeHelper.addMatrixAttr
1: [       OK ] maya_NodeHelper.addMatrixAttr (0 ms)
1: [ RUN      ] maya_NodeHelper.addDataAttr
1: [       OK ] maya_NodeHelper.addDataAttr (0 ms)
1: [ RUN      ] maya_NodeHelper.addMessageAttr
1: [       OK ] maya_NodeHelper.addMessageAttr (0 ms)
1: [ RUN      ] maya_NodeHelper.testAttributeFlags
1: [       OK ] maya_NodeHelper.testAttributeFlags (1 ms)
1: [----------] 21 tests from maya_NodeHelper (6 ms total)
1: 
1: [----------] 1 test from extraMaya_Utils
1: [ RUN      ] extraMaya_Utils.guid_compare
1: [       OK ] extraMaya_Utils.guid_compare (0 ms)
1: [----------] 1 test from extraMaya_Utils (0 ms total)
1: 
1: [----------] 6 tests from maya_PluginTranslatorOptionsContext
1: [ RUN      ] maya_PluginTranslatorOptionsContext.registerPluginTranslatorOptions
1: [       OK ] maya_PluginTranslatorOptionsContext.registerPluginTranslatorOptions (0 ms)
1: [ RUN      ] maya_PluginTranslatorOptionsContext.addBool
1: [       OK ] maya_PluginTranslatorOptionsContext.addBool (0 ms)
1: [ RUN      ] maya_PluginTranslatorOptionsContext.addInt
1: [       OK ] maya_PluginTranslatorOptionsContext.addInt (0 ms)
1: [ RUN      ] maya_PluginTranslatorOptionsContext.addFloat
1: [       OK ] maya_PluginTranslatorOptionsContext.addFloat (0 ms)
1: [ RUN      ] maya_PluginTranslatorOptionsContext.addString
1: [       OK ] maya_PluginTranslatorOptionsContext.addString (0 ms)
1: [ RUN      ] maya_PluginTranslatorOptionsContext.addEnum
1: [       OK ] maya_PluginTranslatorOptionsContext.addEnum (0 ms)
1: [----------] 6 tests from maya_PluginTranslatorOptionsContext (0 ms total)
1: 
1: [----------] 2 tests from maya_PluginTranslatorOptionsInstance
1: [ RUN      ] maya_PluginTranslatorOptionsInstance.toOptionVars
1: [       OK ] maya_PluginTranslatorOptionsInstance.toOptionVars (0 ms)
1: [ RUN      ] maya_PluginTranslatorOptionsInstance.generateGUI
1: 
1: global proc create_dave_bval() {checkBox -l "bval" -v 1 dave_bval;}
1: global proc post_dave_bval(string $value){ eval ("checkBox -e -v " + $value + " dave_bval");}
1: global proc string build_dave_bval(){ string $str = "bval="; if(` checkBox -q -v dave_bval`) $str = $str + "1;"; else $str = $str + "0;"; return $str;}
1: 
1: global proc create_dave_ival() {intFieldGrp -l "ival" -v1 22 dave_ival;}
1: global proc post_dave_ival(string $value){ eval ("intFieldGrp -e -v1 " + $value + " dave_ival");}
1: global proc string build_dave_ival(){ string $str = "ival=" + `intFieldGrp -q -v1 dave_ival` + ";"; return $str;}
1: 
1: global proc create_dave_fval() {floatFieldGrp -l "fval" -v1 23.4 dave_fval;}
1: global proc post_dave_fval(string $value){ eval ("floatFieldGrp -e -v1 " + $value + " dave_fval");}
1: global proc string build_dave_fval(){ string $str = "fval=" + `floatFieldGrp -q -v1 dave_fval` + ";"; return $str;}
1: 
1: global proc create_dave_sval() {textFieldGrp -l "sval" -tx "HALLO" dave_sval;}
1: global proc post_dave_sval(string $value){ eval ("textFieldGrp -e -tx " + $value + " dave_sval");}
1: global proc string build_dave_sval(){ string $str = "sval=" + `textFieldGrp -q -tx dave_sval` + ";"; return $str;}
1: 
1: global proc create_dave_eval() {optionMenuGrp -l "eval" dave_eval;menuItem -l "monday";menuItem -l "tuesday";menuItem -l "wednesday";menuItem -l "thursday";menuItem -l "friday";menuItem -l "saturday";menuItem -l "sunday";eval ("optionMenuGrp -e -sl " + 4 + " dave_eval");
1: }
1: global proc post_dave_eval(string $value){ int $v=$value; eval ("optionMenuGrp -e -sl " + ($v + 1) + " dave_eval");}
1: global proc string build_dave_eval(){ string $str = "eval=" + (`optionMenuGrp -q -sl dave_eval` -1) + ";"; return $str;}
1: 
1: global proc create_davetestOptions()
1: {
1:   frameLayout -cll true -l "testOptions";
1:   columnLayout;
1:   create_dave_bval();
1:   create_dave_ival();
1:   create_dave_fval();
1:   create_dave_sval();
1:   create_dave_eval();
1: }
1: global proc int post_davetestOptions(string $name, string $value)
1: {
1:   if($name == "bval") { post_dave_bval($value); return 1; } else
1:   if($name == "ival") { post_dave_ival($value); return 1; } else
1:   if($name == "fval") { post_dave_fval($value); return 1; } else
1:   if($name == "sval") { post_dave_sval($value); return 1; } else
1:   if($name == "eval") { post_dave_eval($value); return 1; } else
1:   {}
1:   return 0;
1: }
1: global proc string query_davetestOptions()
1: {
1:   string $result;
1:   $result += `build_dave_bval`;
1:   $result += `build_dave_ival`;
1:   $result += `build_dave_fval`;
1:   $result += `build_dave_sval`;
1:   $result += `build_dave_eval`;
1:   return $result;
1: }
1: global proc create_dave_bval2() {checkBox -l "bval2" -v 1 dave_bval2;}
1: global proc post_dave_bval2(string $value){ eval ("checkBox -e -v " + $value + " dave_bval2");}
1: global proc string build_dave_bval2(){ string $str = "bval2="; if(` checkBox -q -v dave_bval2`) $str = $str + "1;"; else $str = $str + "0;"; return $str;}
1: 
1: global proc create_dave_ival2() {intFieldGrp -l "ival2" -v1 22 dave_ival2;}
1: global proc post_dave_ival2(string $value){ eval ("intFieldGrp -e -v1 " + $value + " dave_ival2");}
1: global proc string build_dave_ival2(){ string $str = "ival2=" + `intFieldGrp -q -v1 dave_ival2` + ";"; return $str;}
1: 
1: global proc create_dave_fval2() {floatFieldGrp -l "fval2" -v1 23.4 dave_fval2;}
1: global proc post_dave_fval2(string $value){ eval ("floatFieldGrp -e -v1 " + $value + " dave_fval2");}
1: global proc string build_dave_fval2(){ string $str = "fval2=" + `floatFieldGrp -q -v1 dave_fval2` + ";"; return $str;}
1: 
1: global proc create_dave_sval2() {textFieldGrp -l "sval2" -tx "HALLO" dave_sval2;}
1: global proc post_dave_sval2(string $value){ eval ("textFieldGrp -e -tx " + $value + " dave_sval2");}
1: global proc string build_dave_sval2(){ string $str = "sval2=" + `textFieldGrp -q -tx dave_sval2` + ";"; return $str;}
1: 
1: global proc create_dave_eval2() {optionMenuGrp -l "eval2" dave_eval2;menuItem -l "monday";menuItem -l "tuesday";menuItem -l "wednesday";menuItem -l "thursday";menuItem -l "friday";menuItem -l "saturday";menuItem -l "sunday";eval ("optionMenuGrp -e -sl " + 4 + " dave_eval2");
1: }
1: global proc post_dave_eval2(string $value){ int $v=$value; eval ("optionMenuGrp -e -sl " + ($v + 1) + " dave_eval2");}
1: global proc string build_dave_eval2(){ string $str = "eval2=" + (`optionMenuGrp -q -sl dave_eval2` -1) + ";"; return $str;}
1: 
1: global proc create_davemoreOptions()
1: {
1:   frameLayout -cll true -l "moreOptions";
1:   columnLayout;
1:   create_dave_bval2();
1:   create_dave_ival2();
1:   create_dave_fval2();
1:   create_dave_sval2();
1:   create_dave_eval2();
1: }
1: global proc int post_davemoreOptions(string $name, string $value)
1: {
1:   if($name == "bval2") { post_dave_bval2($value); return 1; } else
1:   if($name == "ival2") { post_dave_ival2($value); return 1; } else
1:   if($name == "fval2") { post_dave_fval2($value); return 1; } else
1:   if($name == "sval2") { post_dave_sval2($value); return 1; } else
1:   if($name == "eval2") { post_dave_eval2($value); return 1; } else
1:   {}
1:   return 0;
1: }
1: global proc string query_davemoreOptions()
1: {
1:   string $result;
1:   $result += `build_dave_bval2`;
1:   $result += `build_dave_ival2`;
1:   $result += `build_dave_fval2`;
1:   $result += `build_dave_sval2`;
1:   $result += `build_dave_eval2`;
1:   return $result;
1: }
1: global proc fromOptionVars_dave()
1: {
1:   string $optionList[];
1:   string $optionBreakDown[];
1:   string $result;
1:   if(`optionVar -ex "davetestOptions"`) {
1:     $result = `optionVar -q "davetestOptions"`;
1:     tokenize($result, ";", $optionList);
1:     for ($index = 0; $index < size($optionList); $index++) {
1:       tokenize($optionList[$index], "=", $optionBreakDown);
1:       if(size($optionBreakDown) < 2) continue;
1:       post_davetestOptions($optionBreakDown[0], $optionBreakDown[1]);
1:     }
1:   }
1:   if(`optionVar -ex "davemoreOptions"`) {
1:     $result = `optionVar -q "davemoreOptions"`;
1:     tokenize($result, ";", $optionList);
1:     for ($index = 0; $index < size($optionList); $index++) {
1:       tokenize($optionList[$index], "=", $optionBreakDown);
1:       if(size($optionBreakDown) < 2) continue;
1:       post_davemoreOptions($optionBreakDown[0], $optionBreakDown[1]);
1:     }
1:   }
1: }
1: global proc create_dave(string $parent)
1: {
1:   setParent $parent; create_davetestOptions();
1:   setParent $parent; create_davemoreOptions();
1:   fromOptionVars_dave();
1: }
1: global proc post_dave(string $name, string $value)
1: {
1:   if(post_davetestOptions($name, $value)) return;
1:   if(post_davemoreOptions($name, $value)) return;
1: }
1: global proc string query_dave()
1: {
1:   string $result, $temp;
1:   $temp = query_davetestOptions();
1:   $result += $temp;
1:   optionVar -sv "davetestOptions" $temp;
1:   $temp = query_davemoreOptions();
1:   $result += $temp;
1:   optionVar -sv "davemoreOptions" $temp;
1:   return $result;
1: }
1: 
1: [       OK ] maya_PluginTranslatorOptionsInstance.generateGUI (0 ms)
1: [----------] 2 tests from maya_PluginTranslatorOptionsInstance (0 ms total)
1: 
1: [----------] Global test environment tear-down
1: [==========] 36 tests from 5 test suites ran. (6 ms total)
1: [  PASSED  ] 36 tests.
1:                __
1:               /"_)
1:      _.----._/ /
1:     /         /
1:  __/ (  | (  |
1: /__.-'|_|--|_|
1: 
1/1 Test #1: AL_MayaUtilsTests ................   Passed    7.01 sec

The following tests passed:
        AL_MayaUtilsTests

100% tests passed, 0 tests failed out of 1

@pmolodo
Copy link
Contributor Author

pmolodo commented Feb 29, 2020 via email

@kxl-adsk kxl-adsk added the unit test Related to unit tests (both python or c++) label Mar 2, 2020
@kxl-adsk
Copy link

kxl-adsk commented Mar 2, 2020

@elrond79 Is this the same as #238 ? (if so, please close one of them)

@kxl-adsk kxl-adsk added al Related to AnimalLogic plugin question Further information is requested labels Mar 2, 2020
@ppt-adsk
Copy link
Collaborator

ppt-adsk commented Mar 4, 2020

If it is the same as #238
then I venture the same suggestion to look at 6cf32fb

@pmolodo
Copy link
Contributor Author

pmolodo commented Mar 11, 2020

This was a dupe of #238, apologies. I did check to see if unloading the renderSetup plugin made a difference, though, and it didn't. I'll try working on this some more later...

@pmolodo
Copy link
Contributor Author

pmolodo commented Oct 1, 2020

I'm closing this because it's been sitting here for a long time, and I haven't had a chance to investigate more. I can open a new ticket if / when I have more info.

@pmolodo pmolodo closed this as completed Oct 1, 2020
ppt-adsk pushed a commit that referenced this issue Feb 28, 2023
* MAYA-126676 : Fix default lighting keeps being invalidated

* MAYA-126676 : Use a one line test as suggested in the code review.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
al Related to AnimalLogic plugin bug Something isn't working question Further information is requested unit test Related to unit tests (both python or c++)
Projects
None yet
Development

No branches or pull requests

5 participants