[IGN-6716] broken runscript/transform binding when session prop are updated in a project with a parent project?

Ignition 8.1.21 and previous version

I have a Project (MyProject) with a parent project (global)
Each times I add some session properties in the project (MyProject), if I have a view openend with some binding with runscript or transform, those binding are definitively broken.

In the designer I have the following error:

If I refresh the page or I open a new browser, I still have those issue !
The only way to fix them is to disable and enable MyProject !

@PGriffith any idea what is going wrong ?

Really weird...

Can you run this on the gateway (inside Perspective, specifically) and show me the result?

from org.python.core import Py

for key, module in Py.getSystemState().modules.items():
	print key, module, type(module)

I've executed the in the designer console opened for the global project.
Is it ok ? or I need to execute it in a perspective view from the final project (with parent = global)

the result

_bytecodetools <type 'org.python.modules._bytecodetools'> <type 'java.lang.Class'>
project <app package project at 2> <type 'com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsolePackage'>
java.nio <java package java.nio 0x3> <type 'javapackage'>
_sre <type 'org.python.modules._sre'> <type 'java.lang.Class'>
java <java package java 0x4> <type 'javapackage'>
_codecs <type 'org.python.modules._codecs'> <type 'java.lang.Class'>
copy_reg <module 'copy_reg' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\copy_reg$py.class'> <type 'module'>
sysconfig <module 'sysconfig' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\sysconfig$py.class'> <type 'module'>
traceback <module 'traceback' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\traceback$py.class'> <type 'module'>
errno <type 'org.python.modules.errno'> <type 'java.lang.Class'>
os.path <module 'ntpath' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\ntpath$py.class'> <type 'module'>
_abcoll <module '_abcoll' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\_abcoll$py.class'> <type 'module'>
ntpath <module 'ntpath' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\ntpath$py.class'> <type 'module'>
codecs <module 'codecs' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\codecs$py.class'> <type 'module'>
org.python.google.common.collect <java package org.python.google.common.collect 0x5> <type 'javapackage'>
encodings.utf_8 <module 'encodings.utf_8' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\encodings\utf_8$py.class'> <type 'module'>
linecache <module 'linecache' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\linecache$py.class'> <type 'module'>
__main__ <module '__main__' (built-in)> <type 'module'>
UserDict <module 'UserDict' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\UserDict$py.class'> <type 'module'>
java.lang <java package java.lang 0x6> <type 'javapackage'>
system <app package system at 7> <type 'com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsolePackage'>
re <module 're' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\re$py.class'> <type 'module'>
functools <module 'functools' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\functools$py.class'> <type 'module'>
Changelog_global <module Changelog_global at 8> <type 'com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsoleModule'>
_jythonlib <type '_jythonlib'> <type 'java.lang.Class'>
ChangeLog_named_query <module ChangeLog_named_query at 9> <type 'com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsoleModule'>
shared <app package shared at 10> <type 'com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsolePackage'>
java.util <java package java.util 0xb> <type 'javapackage'>
nt <type 'nt'> <type 'java.lang.Class'>
sys <module 'sys' (built-in)> <type '<reflected field public org.python.core.PyObject org.python.core.PySystemState.__name__ at 0x1>'>
encodings._java <module 'encodings._java' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\encodings\_java$py.class'> <type 'module'>
java.nio.charset <java package java.nio.charset 0xc> <type 'javapackage'>
StringIO <module 'StringIO' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\StringIO$py.class'> <type 'module'>
_weakrefset <module '_weakrefset' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\_weakrefset$py.class'> <type 'module'>
org.python.google.common <java package org.python.google.common 0xd> <type 'javapackage'>
encodings.aliases <module 'encodings.aliases' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\encodings\aliases$py.class'> <type 'module'>
array <type 'org.python.modules.ArrayModule'> <type 'java.lang.Class'>
fpmi <app package system at 14> <type 'com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsolePackage'>
sre_parse <module 'sre_parse' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\sre_parse$py.class'> <type 'module'>
perspective <app package perspective at 15> <type 'com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsolePackage'>
Notes <module Notes at 16> <type 'com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsoleModule'>
encodings.aliases._java <module 'encodings._java' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\encodings\_java$py.class'> <type 'module'>
org.python.google <java package org.python.google 0x11> <type 'javapackage'>
Comment <module Comment at 18> <type 'com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsoleModule'>
org.python <java package org.python 0x13> <type 'javapackage'>
types <module 'types' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\types$py.class'> <type 'module'>
stat <module 'stat' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\stat$py.class'> <type 'module'>
abc <module 'abc' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\abc$py.class'> <type 'module'>
os <module 'os' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\os$py.class'> <type 'module'>
org <java package org 0x14> <type 'javapackage'>
encodings <module 'encodings' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\encodings\__init__$py.class'> <type 'module'>
warnings <module 'warnings' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\warnings$py.class'> <type 'module'>
__builtin__ <module '__builtin__' (built-in)> <type 'module'>
genericpath <module 'genericpath' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\genericpath$py.class'> <type 'module'>
org.python.core <java package org.python.core 0x15> <type 'javapackage'>
org.python.google.common.cache <java package org.python.google.common.cache 0x16> <type 'javapackage'>
sre_constants <module 'sre_constants' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\sre_constants$py.class'> <type 'module'>
site <module 'site' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\site$py.class'> <type 'module'>
_functools <type '_functools'> <type 'java.lang.Class'>
ThemeByes <module ThemeByes at 23> <type 'com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsoleModule'>
java.util.Collections <type 'java.util.Collections'> <type 'java.lang.Class'>
jythonlib <module 'jythonlib' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\jythonlib$py.class'> <type 'module'>
sre_compile <module 'sre_compile' from 'C:\Users\Administrateur.WIN-3L33688TC4V\.ignition\cache\gwlocalhost_8088\C0\pylib\sre_compile$py.class'> <type 'module'>
>>> Keyboard Interrupt

Needs to be executed directly on the gateway; the error suggests that something's ending up in your sys.modules that shouldn't be there. Finding out what it is will help find out how it got there.

the pevious script was executed in a designer launched directly on the gateway

the result from a button on a perspective view:

PerspectiveClient.77c3c9fcdbd91247f462.js:2 struct - <type 'org.python.modules.struct'> - <type 'java.lang.Class'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 com.inductiveautomation.ignition.common.sqltags - <java package com.inductiveautomation.ignition.common.sqltags 0x3> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.gatewayevents - <app package gatewayevents at 4> - <type 'com.inductiveautomation.ignition.common.script.ScriptPackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 perspective.gui.treevieweqt - <module treevieweqt at 5> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.tag - <app package tag at 6> - <type 'com.inductiveautomation.ignition.common.script.ScriptPackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 _bytecodetools - <type 'org.python.modules._bytecodetools'> - <type 'java.lang.Class'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 java.nio - <java package java.nio 0x7> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 _sre - <type 'org.python.modules._sre'> - <type 'java.lang.Class'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 perspective.sessionevents.startup - <module startup at 114> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.gatewayevents.update - <module update at 8> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 java - <java package java 0x9> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun.backup - <module backup at 10> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 perspective.gui - <app package gui at 11> - <type 'com.inductiveautomation.ignition.common.script.ScriptPackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 collections - <module 'collections' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\collections$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 copy_reg - <module 'copy_reg' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\copy_reg$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 system.byes.utils.webserver - <app package webserver at 12> - <type 'com.inductiveautomation.ignition.common.script.ImmutableScriptPackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 system.byes.onvif.multiple - <app package multiple at 13> - <type 'com.inductiveautomation.ignition.common.script.ImmutableScriptPackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 perspective.sessionevents.update - <module update at 14> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.tag.alarm - <module alarm at 15> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 errno - <type 'org.python.modules.errno'> - <type 'java.lang.Class'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 os.path - <module 'ntpath' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\ntpath$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun.chart - <module chart at 16> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun.translate - <module translate at 17> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 _abcoll - <module '_abcoll' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\_abcoll$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 codecs - <module 'codecs' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\codecs$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun.report - <module report at 18> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 perspective.gui.popup - <module popup at 19> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 encodings.utf_8 - <module 'encodings.utf_8' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\encodings\utf_8$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun.constantesCustom - <module constantesCustom at 20> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 it - <java package it 0x15> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 linecache - <module 'linecache' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\linecache$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 it.sauronsoftware - <java package it.sauronsoftware 0x16> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 java.lang - <java package java.lang 0x17> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 system - <app package system at 24> - <type 'com.inductiveautomation.ignition.common.script.ImmutableScriptPackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 re - <module 're' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\re$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun.constantesCustom.ECLAIRAGE - {'tagSunriseSunset': '[default]TVG/SYS/HOR01/10000/_intern/LEVER_COUCHER', 'eqtPaths': ['[default]TVG/STA/ECL01/01000', '[default]TVG/STA/ECL01/02000', '[default]TVG/STA/ECL01/03000', '[default]TVG/STA/ECL01/04000', '[default]TVG/STA/ECL01/05000', '[default]TVG/STA/ECL01/06000', '[default]TVG/STA/ECL01/07000', '[default]TVG/STA/ECL01/08002', '[default]TVG/STA/ECL01/09000', '[default]TVG/STA/ECL01/10000', '[default]TVG/STA/ECL01/11000', '[default]TVG/STA/ECL01/12000', '[default]TVG/STA/ECL01/13000', '[default]TVG/STA/ECL01/14000', '[default]TVG/STA/ECL01/15000', '[default]TVG/STA/ECL01/16000', '[default]TVG/STA/ECL01/17000', '[default]TVG/STA/ECL01/18000', '[default]TVG/STA/ECL01/19000'], 'tagModeJour': '[default]TVG/SYS/HOR01/10000/TS/MODE_JOUR'} - <type 'dict'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 perspective.gui.token - <module token at 25> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 functools - <module 'functools' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\functools$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 math - <type 'org.python.modules.math'> - <type 'java.lang.Class'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun.param - <module param at 27> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun.audit - <module audit at 28> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 perspective.sessionevents.shutdown - <module shutdown at 29> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 java.sql - <java package java.sql 0x1e> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 java.util - <java package java.util 0x20> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun.token - <module token at 33> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 encodings._java - <module 'encodings._java' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\encodings\_java$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 java.nio.charset - <java package java.nio.charset 0x22> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 system.byes.onvif - <app package onvif at 35> - <type 'com.inductiveautomation.ignition.common.script.ImmutableScriptPackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.cache - <module cache at 36> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun.scheduling - <module scheduling at 37> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 com.inductiveautomation - <java package com.inductiveautomation 0x26> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.tag.util - <module util at 39> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 perspective.gui.video - <module video at 40> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 sre_parse - <module 'sre_parse' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\sre_parse$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.gatewayevents.timer - <module timer at 41> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun.data - <module data at 43> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 org.python.google - <java package org.python.google 0x2c> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.diag.server - <module server at 45> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 org.python - <java package org.python 0x2e> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 system.byes - <app package byes at 48> - <type 'com.inductiveautomation.ignition.common.script.ImmutableScriptPackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 system.byes.replay - <app package replay at 49> - <type 'com.inductiveautomation.ignition.common.script.ImmutableScriptPackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 stat - <module 'stat' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\stat$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun.eclairage - <module eclairage at 50> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 abc - <module 'abc' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\abc$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 perspective.gui.clientNotification - <module clientNotification at 51> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 com.inductiveautomation.ignition.gateway - <java package com.inductiveautomation.ignition.gateway 0x34> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 perspective.nav.main - <module main at 53> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 encodings - <module 'encodings' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\encodings\__init__$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 org.python.core - <java package org.python.core 0x36> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun.dataText - <module dataText at 55> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 system.byes.utils.perspective - <app package perspective at 56> - <type 'com.inductiveautomation.ignition.common.script.ImmutableScriptPackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 sre_constants - <module 'sre_constants' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\sre_constants$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 com.inductiveautomation.ignition.common.model - <java package com.inductiveautomation.ignition.common.model 0x39> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 site - <module 'site' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\site$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 java.text - <java package java.text 0x3a> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun.logger - <module logger at 59> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun.permissions - <module permissions at 60> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun.replay - <module replay at 61> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 perspective.gui.constantes - <module constantes at 62> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 system.byes.utils - <app package utils at 63> - <type 'com.inductiveautomation.ignition.common.script.ImmutableScriptPackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 perspective.gui.utils - <module utils at 64> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 sre_compile - <module 'sre_compile' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\sre_compile$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 com - <java package com 0x42> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.cacheRemote - <module cacheRemote at 67> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 system.byes.webrtc - <app package webrtc at 68> - <type 'com.inductiveautomation.ignition.common.script.ImmutableScriptPackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 perspective.sessionevents.startupInit - <module startupInit at 115> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.gatewayevents.tagchange - <module tagchange at 70> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun.compteurs - <module compteurs at 71> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 operator - <type 'org.python.modules.operator'> - <type 'type'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 system.byes.audit - <app package audit at 72> - <type 'com.inductiveautomation.ignition.common.script.ImmutableScriptPackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 datetime - <module 'datetime' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\datetime$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 com.inductiveautomation.ignition.common.model.values - <java package com.inductiveautomation.ignition.common.model.values 0x49> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 _codecs - <type 'org.python.modules._codecs'> - <type 'java.lang.Class'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 sysconfig - <module 'sysconfig' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\sysconfig$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 perspective.gui.site - <module site at 74> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 perspective.sessionevents.message - <module message at 75> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 com.inductiveautomation.ignition.common.sqltags.model - <java package com.inductiveautomation.ignition.common.sqltags.model 0x4c> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 keyword - <module 'keyword' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\keyword$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 traceback - <module 'traceback' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\traceback$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 it.sauronsoftware.cron4j - <java package it.sauronsoftware.cron4j 0x4d> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 com.inductiveautomation.ignition - <java package com.inductiveautomation.ignition 0x4e> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.diag - <app package diag at 79> - <type 'com.inductiveautomation.ignition.common.script.ScriptPackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 com.inductiveautomation.ignition.common.alarming - <java package com.inductiveautomation.ignition.common.alarming 0x50> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun.clientNotification - <module clientNotification at 81> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun.sono - <module sono at 82> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 ntpath - <module 'ntpath' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\ntpath$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 org.python.google.common.collect - <java package org.python.google.common.collect 0x53> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 perspective.gui.ficheeqt - <module ficheeqt at 84> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 perspective.sessionevents - <app package sessionevents at 85> - <type 'com.inductiveautomation.ignition.common.script.ScriptPackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.cacheUtils - <module cacheUtils at 86> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun.mysql - <module mysql at 87> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 perspective.gui.listeeqt - <module listeeqt at 88> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 UserDict - <module 'UserDict' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\UserDict$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 perspective.gui.chartEqt - <module chartEqt at 89> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun - <app package commun at 90> - <type 'com.inductiveautomation.ignition.common.script.ScriptPackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 _collections - <type 'org.python.modules._collections.Collections'> - <type 'java.lang.Class'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 _jythonlib - <type '_jythonlib'> - <type 'java.lang.Class'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 com.inductiveautomation.ignition.common - <java package com.inductiveautomation.ignition.common 0x5b> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun.util - <module util at 92> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 com.inductiveautomation.ignition.common.sqltags.model.types - <java package com.inductiveautomation.ignition.common.sqltags.model.types 0x5d> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun.network - <module network at 95> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 nt - <type 'nt'> - <type 'java.lang.Class'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.gatewayevents.startup - <module startup at 96> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 perspective.nav.popup - <module popup at 97> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 sys - <module 'sys' (built-in)> - <type '<reflected field public org.python.core.PyObject org.python.core.PySystemState.__name__ at 0x1>'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 com.inductiveautomation.ignition.gateway.datasource - <java package com.inductiveautomation.ignition.gateway.datasource 0x62> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 itertools - <type 'itertools'> - <type 'java.lang.Class'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 StringIO - <module 'StringIO' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\StringIO$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 perspective.nav.menu - <module menu at 99> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 _weakrefset - <module '_weakrefset' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\_weakrefset$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 org.python.google.common - <java package org.python.google.common 0x64> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 encodings.aliases - <module 'encodings.aliases' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\encodings\aliases$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 array - <type 'org.python.modules.ArrayModule'> - <type 'java.lang.Class'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 fpmi - <app package system at 24> - <type 'com.inductiveautomation.ignition.common.script.ImmutableScriptPackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 com.inductiveautomation.ignition.common.alarming.config - <java package com.inductiveautomation.ignition.common.alarming.config 0x65> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 perspective.gui.buzzer - <module buzzer at 102> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 system.byes.utils.mp3 - <app package mp3 at 103> - <type 'com.inductiveautomation.ignition.common.script.ImmutableScriptPackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 encodings.aliases._java - <module 'encodings._java' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\encodings\_java$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 types - <module 'types' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\types$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 os - <module 'os' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\os$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 org - <java package org 0x6a> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 warnings - <module 'warnings' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\warnings$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 __builtin__ - <module '__builtin__' (built-in)> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 genericpath - <module 'genericpath' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\genericpath$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun.constantes - <module constantes at 107> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 thread - <type 'org.python.modules.thread.thread'> - <type 'java.lang.Class'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 __future__ - <module '__future__' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\__future__$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 org.python.google.common.cache - <java package org.python.google.common.cache 0x6c> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 heapq - <module 'heapq' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\heapq$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 perspective.nav - <app package nav at 109> - <type 'com.inductiveautomation.ignition.common.script.ScriptPackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 perspective.gui.constantesCustom - <module constantesCustom at 110> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun.video - <module video at 111> - <type 'com.inductiveautomation.ignition.common.script.ProjectScriptModule'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 java.io - <java package java.io 0x70> - <type 'javapackage'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 _functools - <type '_functools'> - <type 'java.lang.Class'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 time - <type 'time'> - <type 'java.lang.Class'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 jythonlib - <module 'jythonlib' from 'C:\Program Files\Inductive Automation\Ignition\user-lib\pylib\jythonlib$py.class'> - <type 'module'>
PerspectiveClient.77c3c9fcdbd91247f462.js:2 java.util.Collections - <type 'java.util.Collections'> - <type 'java.lang.Class'>

I suspect something relative to the project inheritance.
I believe that if I make the same project without a parent project I can reproduce this issue.

PerspectiveClient.77c3c9fcdbd91247f462.js:2 shared.commun.constantesCustom.ECLAIRAGE - {'tagSunriseSunset': '[default]TVG/SYS/HOR01/10000/_intern/LEVER_COUCHER', 'eqtPaths': ...} - <type 'dict'>

Can you share how you're creating/populating shared.commun.constantesCustom?
That dict is the source of the problem.

that is just some hardcoded data
this dict is at the end of the file shared.commun.constantesCustom which contains others dict and list.

I use it for constant settings.

shared.commun.constantesCustom is overrided from global project in the final project.

ECLAIRAGE = {
	"eqtPaths" : ["[default]TVG/STA/ECL01/01000",
		"[default]TVG/STA/ECL01/02000",
		"[default]TVG/STA/ECL01/03000",
		"[default]TVG/STA/ECL01/04000",
		"[default]TVG/STA/ECL01/05000",
		"[default]TVG/STA/ECL01/06000",
		"[default]TVG/STA/ECL01/07000",
		"[default]TVG/STA/ECL01/08002",
		"[default]TVG/STA/ECL01/09000",
		"[default]TVG/STA/ECL01/10000",
		"[default]TVG/STA/ECL01/11000",
		"[default]TVG/STA/ECL01/12000",
		"[default]TVG/STA/ECL01/13000",
		"[default]TVG/STA/ECL01/14000",
		"[default]TVG/STA/ECL01/15000",
		"[default]TVG/STA/ECL01/16000",
		"[default]TVG/STA/ECL01/17000",
		"[default]TVG/STA/ECL01/18000",
		"[default]TVG/STA/ECL01/19000"],	
	"tagModeJour" : "[default]TVG/SYS/HOR01/10000/TS/MODE_JOUR",
	"tagSunriseSunset" : "[default]TVG/SYS/HOR01/10000/_intern/LEVER_COUCHER"
}

I send you in a PM the whole file

this file is probably imported in runscript or script transform used in bindings.

If you could find exactly how/where shared.commun.constantesCustom or shared.commun.constantesCustom.ECLAIRAGE are referenced elsewhere, that would help a lot. I think that's the core of the issue - somehow this dictionary (and only this dictionary) is ending up in a place it shouldn't, which breaks things when we try to 'clean up'. The things I've tried so far aren't causing the issue.

I think you put me on the right track as always ! :clap: :clap: :clap:

These dict was used in another script lib:

import system
import shared.commun.logger
import shared.commun.constantes
import shared.commun.util

strLib = "shared.commun.eclairage"

import shared.commun.constantesCustom.ECLAIRAGE

eqtPathsEcl = shared.commun.constantesCustom.ECLAIRAGE["eqtPaths"]
tagModeJour = shared.commun.constantesCustom.ECLAIRAGE["tagModeJour"]
tagSunriseSunset = shared.commun.constantesCustom.ECLAIRAGE["tagSunriseSunset"]

I changed:

import shared.commun.constantesCustom.ECLAIRAGE

to:

import shared.commun.constantesCustom

And it seems I don't have the initial issue, or after a session prop change if I refresh the page all seems fine !

I will make more test and check to confirm.

1 Like

Yeah, it's the combination of explicitly importing something from a package, then re-exporting an inner item as a top-level constant. Funky bug. We'll fix it :slight_smile:

1 Like