|
IDEA
|
Considering I have run into a number of major issues with a custom written arcpy/Python when attempting to run the code on the ArcGIS Pro 3.6 new option of "Foreground Thread" processing (e.g. partly documented here: https://community.esri.com/t5/python-documents/python-in-arcgis-pro-3-6-faq/ta-p/1619754), I think it wise, regardless of whether ESRI fixes anything, if users of Pro 3.6+ were given the ability to disable "Foreground Thread" and / or background "Geoprocessing Thread" processing via arcpy Python code. Clearly, based on my experience so far, especially with custom written code that uses Python's own multi-threading and multi-processing options like mine, there are possibly incompatibilities with the new "Foreground Thread" processing. It would therefor be wise to have an option to turn it off. This will likely require extending the ArcGIS ModelBuilder "ToolValidator class", as obviously, once the script runs on either "Foreground Thread" or "Geoprocessing Thread", switching between the two will be impossible, so this has to be set before actual tool execution starts. Adding this option to the "ToolValidator" class will allow custom arcpy toolvalidation code to disable "Foreground Thread", allowing to safely run tools that can only be technically run on the "Geoprocessing Thread". Please make this an option on the ToolValidator class, to allow fine grained control by developers, instead of some global switch in ArcGIS Pro's configuration, which might result in incompatibility with a global setting that is not in correspondence with the needs of a particular Python script, which would be a major headache for developers.
... View more
2 hours ago
|
0
|
0
|
35
|
|
DOC
|
Hi @HannesZiegler , I have unfortunately identified a few more issues that I want to report here. I honestly do not have the time and energy now to go through the whole process of getting them logged as bugs. I already wasted a whole week trying to wade through issues getting my main geoprocessing workflow to fully work again in Pro 3.6, at least on the Background Thread for now (which now works). This is to much. The issues: - With Foreground Thread processing, if I use a Python 'concurrent.futures.ThreadPoolExecutor' with a function similar to the one below as input to the executor, where there is a gc.collect() in the 'finally' except construct, it will hang / stall Pro. Removing the gc.collect() from the 'finally' construct, lets the script continue. This does not happen with Background Thread processing, the gc.collect() call does not cause issues in that mode in combination with usage of 'concurrent.futures.ThreadPoolExecutor'. I do not know if this is actually a Pro bug, or a bug in Python 3.13. There are several references to (fixed) issues related to gc.collect in the Python 3.13 release notes, see the linked full release notes for the references to gc.collect() in relation to these issues: Add sys.unraisablehook() to customize how "unraisable exceptions" are logged python/cpython#81010 C implementation of functools.lru_cache python/cpython#58581 At least one of them seems to have quite a bit of history, and may have seen changes in e.g. 3.11 as well, but I didn't check. def some_function():
try:
blabla
except:
blabla
finally:
some_clean_up
gc.collect() - With Foreground Thread set, CIM edits seem to cause Python exceptions. Please note I haven't checked this extensively, I just noticed it in one particular case that is present in my workflow. I have not tested whether this applies to all CIM edits on a Foreground Thread, or just the specific one I happen to use in my workflow, which is the setting of the label classes' Maplex label priority ranking. E.g. see the script example below, where the exception will be raised on a Foreground Thread but not when running the same code as Background Thread. cimLyr = lyr.getDefinition("V3")
i = 1
# Change the label class "label priority ranking" 'priority' value
for cimLabelClass in cimLyr.labelClasses:
# Double check we got a label class
if type(cimLabelClass).__name__ == "CIMLabelClass":
try:
cimLabelClass.priority = i
except:
arcpy.AddWarning("*** WARNING ***: Failed to set the 'Label Priority Ranking' Maplex label engine setting of layer '{}'!".format(lyrToAdd.name))
pass
i += 1
... View more
Monday
|
0
|
0
|
127
|
|
DOC
|
@HannesZiegler , I have now reported these issues to the Dutch branch of ESRI, so hopefuly they get reproduced and logged as bugs. Unsurprisingly, for the Get Count tool issue, a bug was already logged.
... View more
2 weeks ago
|
0
|
0
|
335
|
|
DOC
|
@HannesZiegler and @Kimberly-Saballett Just to clarify a bit more: regarding the detected issue with Python "concurrent.futures.ThreadPoolExecutor" hanging when run in the ArcGIS Pro 3.6 Foreground Thread, when I say "hangs" I literally mean hangs, the application does not crash nor does it throw open the ArcGIS Pro error reporter, but it simply becomes unresponsive at the end of the ThreadPoolExecutor execution, and doesn't continue processing. I need to kill Pro from the Windows Task Manager to stop the application.
... View more
2 weeks ago
|
0
|
0
|
447
|
|
DOC
|
Hi @HannesZiegler , I unfortunately have identified two other issues in Pro 3.6: 1) - The Get Count geoprocessing tool now fails with a non(!) enterprise geodatabase enabled ordinary PostgreSQL enterprise database feature class. This used to work in Pro 3.5 and below. According to the "What's new in Pro 3.6", the Get Count tool had changes applied for Pro 3.6, that seems to break this option. See the images entirely below. 2) - Using a Python "concurrent.futures.ThreadPoolExecutor" seems to make the geoprocessing in Pro 3.6 hang at the end of the thread pool processing if the processing is run in the Pro Foreground Thread. I do not see these hangs if Pro 3.6 is set to run in the background Geoprocessing Thread, which is the default.
... View more
2 weeks ago
|
0
|
0
|
495
|
|
DOC
|
@HannesZiegler I ran into a highly confusing issue with one of my main custom build Python scripts after the ArcGIS Pro 3.6 / Python 3.13 upgrade. When I attempted to run the script, which runs perfectly fine in Pro 3.5 / Python 3.11, the script immediately errored out with an "indentation error". However, there are none. Visual Studio Code, and PyScripter show the code as fine with their internal syntax checks. One thing I finally noticed, was that the error seemed related to a commented out code section: for renderRule in renderRulesInit:
renderRules.append(renderRule.split('|')[0].rstrip(' '))
## for layeredRenderRule in layeredRenderRulesInit:
## layeredRenderRules.append(layeredRenderRule.split('|')[0].rstrip(' ')) This code section lived directly under an: if __name__ == '__main__':
styleFolder = arcpy.GetParameterAsText(0)
styleName = arcpy.GetParameterAsText(1) code section. Having such commented out section there, was never a problem with Pro <3.6 and Python <3.13. As a test, I changed the code with comment to this, so with comment lined out with the rest of the code: for renderRule in renderRulesInit:
renderRules.append(renderRule.split('|')[0].rstrip(' '))
#for layeredRenderRule in layeredRenderRulesInit:
# layeredRenderRules.append(layeredRenderRule.split('|')[0].rstrip(' ')) and then the script ran! Note that having similar comments lined out to the entire left of a code line in other functions is *no* problem, it is just those sections directly under '__main__' that now in Python 3.13 seem to cause these false "indentation errors", blocking execution of the script in Pro. Not sure if this is a bug in Pro 3.6, or more likely in Python 3.13. Can you confirm this? At least it would be good to document this behavioral change in the Pro Help if this is a deliberate and intended change in e.g. Python 3.13. Marco
... View more
2 weeks ago
|
0
|
0
|
534
|
|
POST
|
I have never used it, and are also not much of an AGOL user, so can't comment on whether it would work there, but it sounds to me you may wish to use ArcGIS Dictionary Symbology: https://pro.arcgis.com/en/pro-app/latest/help/mapping/layer-properties/dictionary-renderer.htm https://github.com/Esri/dictionary-renderer-toolkit Although a lot of the documentation and the initial usage was geared to military mapping and symbology, you can actually use it for custom symbology as well in more recent versions of Pro. Here's a blog post documenting how to create a "custom" dictionary: https://www.esri.com/arcgis-blog/products/arcgis-pro/mapping/create-custom-dictionary-styles-for-arcgis
... View more
07-01-2025
02:25 AM
|
0
|
1
|
899
|
|
POST
|
@JesseCloutier . The editing isssue is resolved for me. Thanks!
... View more
06-09-2025
12:29 PM
|
1
|
0
|
471
|
|
POST
|
In the error I see reference to PostgreSQL's 'public' user schema. As of PG15, working with public schema to store user data has been strongly discouraged by the the PostgreSQL developers and community due to security concerns, and default access rights revoked. This may be causing you issues. I recommend you to create a new user with its own dedicated user schema and not grant it superuser rights but just leave it at its ordinary limited rights.
... View more
06-07-2025
02:44 AM
|
1
|
2
|
721
|
|
POST
|
@JesseCloutier I am running into the same issue: no problem posting new posts, but no longer the ability to edit my own posts. Can you fix this? Honestly, I think ESRI should do an overall review of all users that lost their editing rights here in the community by whatever hickup that may have caused it.
... View more
06-07-2025
02:34 AM
|
0
|
1
|
492
|
|
POST
|
About the life cycle: to me, any(!) bug and a fix for it that is detected in any of the current "general availability" major versions (which is generally the last three major releases, e.g. 3.3, 3.4 and 3.5) should be automatically applied and / or backported to all the other major releases in "general availability" if it is also applicable to those other major versions (there maybe cases where it is not, e.g. if the issue is only related to new functionality not available in lower versions). Currently, this is not the case, and ESRI seems to apply a highly opaque "vetting" system for backporting fixes that feels essentially random to Pro users, and only true security issues seem to automatically make their way to lower versions.
... View more
06-07-2025
01:12 AM
|
1
|
0
|
506
|
|
POST
|
What happens if you make the path a raw string? So: arcpy.Exists(r"<YOUR_PATH>")
... View more
06-06-2025
08:55 AM
|
0
|
0
|
207
|
|
POST
|
@RTPL_AU wrote: How valid is it to think that the release model should change to a mix of Long Term Stable + New Feature Releases Short Term Unstable? Introducing such Long Term Stable releases would only be a viable approach if the LTS release is actually actively maintained and being worked on with additional (backported) bugfixes. If it is just another unmaintained essentially dead release cycle nobody cares about, it would solve nothing.
... View more
06-06-2025
01:20 AM
|
0
|
0
|
613
|
|
POST
|
I totally agree this approach of only "fixing" issues in new releases is highly problematic. In my opinion, a bug is only truly "fixed" if the fix is backported to the release cycle where the issue / bug was first introduced. Fixing issues only in new releases is "addressing" the issue, not fixing it. A fix for an issue / bug introduced into e.g. 3.4.0, should not require upgrading to 3.5 or 3.6, but should be addressed in a 3.4.x minor bugfix release.
... View more
06-06-2025
01:11 AM
|
1
|
0
|
615
|
|
POST
|
Since this other thread about ArcGIS Monitor suggests the Datastore and associated database is just a regular PostgreSQL installation, the logical option to monitor your Datastore health would be any of the available (commercial) software packages for monitoring PostgreSQL database health. E.g. pgAdmin would be a logical choice. DBeaver is another option, and there others out there if you do a bit of searching. Although both of these suggested options are more about database management, and not so much about alerting or warning you when something catastrophic is about to happen. There are other options out there though, that do more of a kind of monitoring job if you do a bit of internet searching.
... View more
06-05-2025
12:18 AM
|
1
|
0
|
389
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 04-29-2020 03:54 AM | |
| 1 | 06-09-2025 12:29 PM | |
| 1 | 06-06-2025 01:11 AM | |
| 1 | 06-07-2025 01:12 AM | |
| 1 | 06-07-2025 02:44 AM |
| Online Status |
Online
|
| Date Last Visited |
6 hours ago
|