Řešíme problém s WebGISDR selháním v nasazení ArcGIS Enterprise 11.5 na Linuxu a problém jsme izolovali na federovaný ArcGIS Notebook Server exportSite operaci.
WebGISDR obdrží HTTP 500 při exportu Notebook Serveru. Problém jsme reprodukovali nezávisle na WebGISDR provedením autentizovaného požadavku přímo na Notebook Server exportSite Admin API:
POST /notebooks/admin/exportSite
Operace konzistentně vrací:
HTTP 500 - Export operace selhala. null
S dočasným povoleným DEBUG logováním, Notebook Server úspěšně:
- spustí exportní operaci;
- vytvoří
/opt/arcgis/notebookserver/temp/tmp-carbon-export-*; - vytvoří dočasné konfigurační úložiště;
- aktualizuje systémové vlastnosti Admin API; a
- zkopíruje konfiguraci webu do dočasného konfiguračního úložiště.
Okamžitě poté export selže s:
java.lang.NullPointerException
at java.util.Objects.requireNonNull(...)
at sun.nio.fs.UnixFileSystem.getPath(...)
at java.nio.file.Path.of(...)
at java.nio.file.Paths.get(...)
at com.esri.arcgis.carbon.common.FileUtil.copyFile(FileUtil.java:652)
at com.esri.arcgis.carbon.admin.SiteManager.exportSite(SiteManager.java:2027)
at com.esri.arcgis.carbon.admin.rest.site.SiteResource.exportSite(SiteResource.java:329)
Zachytili jsme dočasný adresář tmp-carbon-export-* před tím, než ho Notebook Server odstranil. Obsahuje backupRestoreInfo.json a podstatné konfigurační úložiště Notebook Serveru, včetně konfigurace stroje, serverových adresářů, definic/manifests runtime poznámkových bloků, bezpečnostní konfigurace, konfigurace Web Adaptoru, certifikátového keystore a metadat kontejneru.
Porovnání živého konfiguračního úložiště s zachyceným exportním konfiguračním úložištěm ukázalo pouze očekávané vynechané soubory .lock files omitted; no substantive configuration files were missing.
We also tested whether the problem was related to this being a newly deployed/previously unused Notebook Server. A Standard notebook was created, saved, and successfully executed. This initialized a running Notebook container, workspace artifacts, and populated Notebook Server system job records.
As an additional functional test, the notebook successfully executed ArcGIS API for Python code using:
from arcgis.gis import GIS
gis = GIS("home")
print("Connected to:", gis.properties.name)
print("Portal URL:", gis.url)
print("Logged in as:", gis.users.me.username)
print("Portal version:", gis.properties.currentVersion)
The notebook successfully authenticated to the federated Portal and returned:
Connected to: ArcGIS Enterprise
Portal URL: https://gis.xyz.com/portal
Logged in as: siteadmin
Portal version: 2025.1
This confirms that normal Notebook Server container execution, ArcGIS API for Python execution, Portal authentication, and communication with the federated Portal are functioning.
After creating, saving, and executing the notebook, we tested the direct Notebook Server exportSite operation again. It still fails identically with:
HTTP 500 - Export operation failed. null
Therefore, the failure does not appear to be caused by the absence of user notebooks, lack of first-use initialization, inability to start Notebook containers, or inability of notebooks to communicate with Portal.
We have also validated:
- Portal ↔ Notebook Server federation/configuration
- Notebook Server → configured Portal URL connectivity
- TLS connectivity
- successful Notebook container startup and execution
- successful ArcGIS API for Python execution and Portal authentication
- registered Notebook Server directories and paths
- filesystem permissions and available disk space
- Notebook Server certificate/keystore artifacts
- creation and use of the temporary export directory
- successful creation of
backupRestoreInfo.json - successful copy of the substantive Notebook Server configuration store
The failure therefore appears to occur after the site configuration has been copied, when SiteManager.exportSite() calls FileUtil.copyFile() with what appears to be a null path.
Questions:
- Is this a known ArcGIS Notebook Server 11.5
exportSite issue? - What additional file or artifact does
SiteManager.exportSite() attempt to copy at this stage of the export? - Is there a supported way to determine which source path passed to
FileUtil.copyFile() is null? - Is there a patch or supported workaround for this issue?
Environment: ArcGIS Enterprise 11.5, ArcGIS Notebook Server 11.5, Linux, federated Notebook Server.