Skip to first unread message

Richard Chapplow

unread,
Sep 27, 2022, 4:54:06 PM9/27/22
to AtoM Users
I have just finished installing AtoM 2.6 in a VM of Ubuntu 18.04.6 LTS with VirtualBox 6.1 in Windows 10 Pro 21H2. I'm nowhere near being a truly competent Linux user (installed SuSe many years ago and Ubuntu several years ago), but after several attempts, AtoM is almost working. I can log in, create new accounts, and have created a couple test Archival Descriptions. I had an issue while in the initial web setup where I kept getting a 500 Internal Server error when trying to complete the Search section of the install. I needed to step away for awhile, so I shutdown the VM, which was probably a bad idea. Upon restarting the VM and going to AtoM through localhost, I was getting an error when I tried to edit the Archival Descriptions, but was able to troubleshoot that it was the workers not being setup, which now appear to work fine.

My issues right now are trying to export and generate a finding aid. Both of the export options shown (Dublin Core 1.1 XML and EAD 2002 XML) output a page of XML with "This XML file does not appear to have any style information associated with it. The document tree is shown below." at the top. More crucial though is that under "Finding Aid" I only have an Upload option, with no Generate option at all.

I assume this is because of the initial Web Setup not being completed?

Dan Gillean

unread,
Sep 28, 2022, 8:58:46 AM9/28/22
to ica-ato...@googlegroups.com
Hi there Richard, 

It may be simpler than that (hopefully)!

First, from what you describe, it actually sounds like the XML export options are working as expected. These are generated on demand synchronously in the browser when a user clicks them (i.e. they are not pre-generated via the job scheduler). To save the XML file locally, just right-click and choose "Save as".

You can confirm that the behavior is similar in our public demo site: 
Regarding the finding aid issue: 

Are your descriptions published, or Draft? AtoM has a publication status that controls public visibility for archival descriptions; see: 
I ask because there is a setting in AtoM called "Generate Finding Aid as public user." This setting is generally used to ensure that Draft descriptions are not included in generated finding aids  - so for example, if you have a published fonds, but one series is still a work in progress and is therefore still set to Draft, you can generate a finding aid for your public users for the fonds that will exclude the draft series and all its descendants. 

 However, when this setting is enabled the option to generate a finding aid is excluded from all top-level draft records! From the docs: 

If you have the “Generate Finding Aid as public user” setting set to “Yes,” the option to generate a finding aid will not appear on any draft descriptions in AtoM. You will have to publish the description before you can generate a finding aid. You will still have the option to upload a finding aid - but remember, if the associated description is in Draft mode, users won’t be able to access it, or your uplaoded finding aid until it’s published.

See: 
So, that's my first guess as to what's happening here. I would suggest that you either try disabling this setting, or publishing your archival unit. 

Let us know if that helps!

Cheers, 

Dan Gillean, MAS, MLIS
AtoM Program Manager
Artefactual Systems, Inc.
604-527-2056
@accesstomemory
he / him


--
You received this message because you are subscribed to the Google Groups "AtoM Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ica-atom-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ica-atom-users/63870cfb-703a-4c75-a8b7-bff4f0291accn%40googlegroups.com.

Richard Chapplow

unread,
Sep 29, 2022, 1:18:02 PM9/29/22
to AtoM Users
Hi Dan,

Thanks for the quick reply!

Good to hear the XML is working as intended. I was wondering if that was the case.

Yes, I only had the description set to Draft, when set to Published the option to generate a finding aid becomes available. (Time to really read the manual.)  But now I am running into a 403 error when trying to generate the finding aid:

[info] [2022-09-29 09:53:56] Job 478 "arFindingAidJob": Job started.
[info] [2022-09-29 09:53:56] Job 478 "arFindingAidJob": Generating finding aid (test-cohodas-finding-aid)...
[info] [2022-09-29 09:53:57] Job 478 "arFindingAidJob": Running: java -jar '/usr/share/nginx/atom/lib/task/pdf/saxon9he.jar' -s:'/tmp/phph5e6Eb' -xsl:'/usr/share/nginx/atom/lib/task/pdf/ead-pdf-full-details.xsl' -o:'/tmp/phpiqNMBD' 2>&1
[info] [2022-09-29 09:54:00] Job 478 "arFindingAidJob": Transforming the EAD with Saxon has failed.
[info] [2022-09-29 09:54:00] Job 478 "arFindingAidJob": ERROR(SAXON): Error
[info] [2022-09-29 09:54:00] Job 478 "arFindingAidJob": ERROR(SAXON): I/O error reported by XML parser processing file:/tmp/phph5e6Eb: Server returned HTTP
[info] [2022-09-29 09:54:00] Job 478 "arFindingAidJob": ERROR(SAXON): response code: 403 for URL: http://lcweb2.loc.gov/xmlcommon/dtds/ead2002/ead.dtd
[info] [2022-09-29 09:54:00] Job 478 "arFindingAidJob": ERROR(SAXON): Transformation failed: Run-time errors were reported
[info] [2022-09-29 09:54:00] Job 478 "arFindingAidJob": Job finished.

I have found a few threads about this already so I'm about to dive into troubleshooting this one. Wish me luck. Networking is one area that I tend to hate in Windows, so being a Linux noob dealing with not just Linux, but Linux in a VM means this should be interesting!

Thanks,
Richard.

Richard Chapplow

unread,
Sep 29, 2022, 1:49:37 PM9/29/22
to AtoM Users
Hi Dan,

I followed the suggestion here: https://groups.google.com/g/ica-atom-users/c/tRlf6nT-4rA/m/MVfcFUcpAgAJ but am now getting this error when generating:

[info] [2022-09-29 10:37:49] Job 479 "arFindingAidJob": Job started.
[info] [2022-09-29 10:37:49] Job 479 "arFindingAidJob": Generating finding aid (test-cohodas-finding-aid)...
[info] [2022-09-29 10:37:50] Job 479 "arFindingAidJob": Running: java -jar '/usr/share/nginx/atom/lib/task/pdf/saxon9he.jar' -s:'/tmp/phptNK859' -xsl:'/usr/share/nginx/atom/lib/task/pdf/ead-pdf-full-details.xsl' -o:'/tmp/phpiPQ0t4' 2>&1
[info] [2022-09-29 10:37:54] Job 479 "arFindingAidJob": Transforming the EAD with Saxon has failed.
[info] [2022-09-29 10:37:54] Job 479 "arFindingAidJob": ERROR(SAXON): Error on line 2 column 1 of phptNK859:
[info] [2022-09-29 10:37:54] Job 479 "arFindingAidJob": ERROR(SAXON): SXXP0003: Error reported by XML parser: Premature end of file.
[info] [2022-09-29 10:37:54] Job 479 "arFindingAidJob": ERROR(SAXON): Transformation failed: Run-time errors were reported
[info] [2022-09-29 10:37:54] Job 479 "arFindingAidJob": Job finished.

Doing some preliminary searches, I can't find anything about phptNK859?

Thanks,
Richard.

Richard Chapplow

unread,
Sep 29, 2022, 2:28:50 PM9/29/22
to AtoM Users
In doing more searching, I've also found that exporting XML no longer functions:

XML Parsing Error: no element found
Location: http://localhost/index.php/test-cohodas-finding-aid;ead?sf_format=xml
Line Number 2, Column 1:

Dan Gillean

unread,
Sep 30, 2022, 10:04:37 AM9/30/22
to ica-ato...@googlegroups.com
Hi Richard, 

Ugh, it looks like with the 403 you are running into a known issue. This was happening only sporadically for most users, but it seems that perhaps something upstream may have changed. In any case, the issue is that the XSL attempts to call the Library of Congress for the EAD DTD - but LC has blocked such calls to avoid getting accidentally doxxed by community usage. We've fixed this in the upcoming 2.7 release by using and referencing a local copy of the EAD 2002 DTD instead -  you can read more about the issue and the fix here: 
I've not seen this affect all browser-based XML exports in a site before, so I'm not sure if the two are related or not. If, upon closer investigation, they are all returning 403 errors then this would be the cause. However, as I said - just exporting a description as EAD shouldn't typically trigger this response, and I can still do so in our public test site, for example. 

Have you by chance turned on the setting to pre-generate and cache XML in advance? See: 
This setting moves the XML export from being done synchronously in the browser on demand, to asynchronously via the job scheduler, whenever the related description is modified. This may follow a process closer to the finding aid generation - which may therefore try to make the call to LoC for the DTD. 

If you've got this setting turned on, try turning it off for now to see if that resolves the XML export issue. 

Otherwise - a few questions to see if we can narrow down the cause a bit: 
  • Are you getting the same problem with the DC XML export?
  • Have you spot-checked other descriptions? i.e. is this happening to all descriptions, or just some?
  • Were the related descriptions created manually via the user interface, or were they imported? Might someone have been creating them by cutting and pasting into AtoM from a different source, like a Word document or Excel spreadsheet?
  • Is there any further information available in the webserver error logs? See: 
Finally, returning to the original 403 issue: 

Unfortunately, the fix for the issue in 2.7 is fairly extensive (you can see the related commit here). You could try applying this as a patch, or manually making the same changes locally, but it might be difficult. 

Alternatively, while we don't have an official public release and corresponding downloadable tarball available yet, one option would be for you to install 2.7 instead. The release is all but done, and as you can see, we have a 3rd release candidate tag in the repository, and pretty much all the 2.7 documentation has been updated, so it's quite stable. You can use Option 2 in the installation instructions to install from our code repository in lieu of using the downloadable tarball. However, 2.7 also moves to Ubuntu 20.04 and PHP 7.4, so I understand that it's a lot of work as a way to troubleshoot a recent 2.6 installation. 

Otherwise, you may need to wait for a formal 2.7 public release, and then upgrade at that time to fully resolve the 403 issue. Apologies! 

Dan Gillean, MAS, MLIS
AtoM Program Manager
Artefactual Systems, Inc.
604-527-2056
@accesstomemory
he / him

Message has been deleted

Daniel Flores

unread,
Oct 6, 2022, 2:14:37 PM10/6/22
to ica-ato...@googlegroups.com

   Hi Richard, 

   The correct git branch that has the 2.7.0-rc3 is (until there is an stable release): 

   qa/2.x

   > sudo git clone -b qa/2.x http://github.com/artefactual/atom.git /usr/share/nginx/atom 


Em qui., 6 de out. de 2022 às 14:47, Richard Chapplow <twoth...@gmail.com> escreveu:
Hi Dan,

I decided to just start over with 20.04 and 2.7 AtoM. So far so good, but I'm kinda stuck at grabbing AtoM from github. When inputting this commend:

sudo git clone -b stable/2.7.x http://github.com/artefactual/atom.git /usr/share/nginx/atom

I get the error:

Cloning into '/usr/share/nginx/atom'...
warning: redirecting to https://github.com/artefactual/atom.git/
fatal: Remote branch stable/2.7.x not found in upstream origin

I understand that the problem is that stable/2.7.x doesn't exist on github, but as I'm not really familiar with using github, I'm not sure how that command should be altered to download 2.7.0-rc3?

Thanks,
Richard.

Richard Chapplow

unread,
Oct 6, 2022, 2:27:28 PM10/6/22
to AtoM Users
Hi Daniel,

Thanks! I had just managed to find that out as well so I ended up deleting my comment.

I am now encountering a new error that I hadn't seen previously. When I run the AtoM installer with:

php symfony tools:install

I get the following error:

Failed to make cache directory "/usr/share/nginx/atom/cache/qubit/cli/config" while generating cache for configuration file "config/config_handlers.yml".

With this attempt at AtoM, I opted for a different method. I am no longer running Ubuntu virtualized, but installed it to an external nvme drive using the method here: https://itsfoss.com/intsall-ubuntu-on-usb (yes, that typo is the correct URL.) This is so that our AtoM install isn't tied to one computer, since this is for a small visual resource center. So far, the install of Ubuntu is working great like this and with the nvme, it's actually quite fast. Here's to hoping that this isn't the root of the above error.

Thanks,
Richard.

Dan Gillean

unread,
Oct 6, 2022, 4:25:52 PM10/6/22
to ica-ato...@googlegroups.com
Hi Richard, 

Glad to hear you figured out the GitHub repo issue (and thank you Daniel for helping!).

Regarding this new error, I will ask our developers tomorrow, but as a first thing to try: 

Based on the message you're getting, it sounds like it could be a permissions issue (though I don't recall seeing that particular error before). AtoM expects everything below the root installation directory to be owned by the www-data user, so we can try first setting the permissions, and then re-trying the command explicitly as the www-data user. 

Set the filesystem permissions: 
  • sudo chown -R www-data:www-data /usr/share/nginx/atom
Now try that command again, but run it explicitly as the ww-data user: 
  • sudo -u www-data php symfony tools:install
Bit of a shot in the dark, but hopefully that fixes it! Otherwise, I will see if our team has further suggestions for you. 

Cheers, 

Dan Gillean, MAS, MLIS
AtoM Program Manager
Artefactual Systems, Inc.
604-527-2056
@accesstomemory
he / him


Richard Chapplow

unread,
Oct 6, 2022, 5:26:33 PM10/6/22
to AtoM Users
Hi Dan,

Going through those two commands worked! I feel like I am almost there! AtoM loads fine, the XML exports both work fine, but I am getting an error when trying to generate the finding aid. When I look at the Manage Jobs page, there are two errors. I am using nginx as per the install instructions, so it seems odd that there is all the references to apache?

Error:
2022-10-06 14:15:06 Exception: Role '448' not found
2022-10-06 14:15:06 File: /usr/share/nginx/atom/plugins/qbAclPlugin/lib/vendor/Zend/Acl/Role/Registry.php
2022-10-06 14:15:06 Line: 122

Log:
[info] [2022-10-06 14:15:06] Job 458 "arGenerateReportJob": Job started. [info] [2022-10-06 14:15:06] Job 458 "arGenerateReportJob": Parameters: {"objectId":"452","reportType":"fileList","reportTypeLabel":"File","sortBy":"referenceCode","reportFormat":"html","includeThumbnails":false,"name":"arGenerateReportJob","id":"458"} [err] [2022-10-06 14:15:06] Job 458 "arGenerateReportJob": Exception: Role '448' not found [err] [2022-10-06 14:15:06] Job 458 "arGenerateReportJob": File: /usr/share/nginx/atom/plugins/qbAclPlugin/lib/vendor/Zend/Acl/Role/Registry.php [err] [2022-10-06 14:15:06] Job 458 "arGenerateReportJob": Line: 122

and

Error:
2022-10-06 14:12:25 Exception: ERROR(FOP): [warning] /usr/bin/fop: JVM flavor 'sun' not understood
Exception in thread "main" java.lang.NoSuchMethodError: java.nio.CharBuffer.limit(I)Ljava/nio/CharBuffer;
at org.apache.fop.fo.FOText.characters(FOText.java:143)
at org.apache.fop.fo.FObjMixed.characters(FObjMixed.java:74)
at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.characters(FOTreeBuilder.java:390)
at org.apache.fop.fo.FOTreeBuilder.characters(FOTreeBuilder.java:136)
at org.apache.xalan.transformer.TransformerIdentityImpl.characters(TransformerIdentityImpl.java:1126)
at org.apache.xerces.parsers.AbstractSAXParser.characters(Unknown Source)
at org.apache.xerces.xinclude.XIncludeHandler.characters(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanContent(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:485)
at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:293)
at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:116)
at org.apache.fop.cli.Main.startFOP(Main.java:183)
at org.apache.fop.cli.Main.main(Main.java:214)
2022-10-06 14:12:25 File: /usr/share/nginx/atom/lib/QubitFindingAidGenerator.class.php
2022-10-06 14:12:25 Line: 564

Log:
[info] [2022-10-06 14:12:23] Job 457 "arFindingAidJob": Job started. [info] [2022-10-06 14:12:23] Job 457 "arFindingAidJob": Parameters: {"objectId":"452","description":"Generating finding aid for: Test","name":"arFindingAidJob","id":"457"} [info] [2022-10-06 14:12:23] Job 457 "arFindingAidJob": Generating a public finding aid (test)... [info] [2022-10-06 14:12:23] Job 457 "arFindingAidJob": Generated EAD file "/tmp/ead_0000000452_test.xml" [info] [2022-10-06 14:12:23] Job 457 "arFindingAidJob": Rendering XSL template '/usr/share/nginx/atom/lib/task/pdf/ead-pdf-inventory-summary.xsl' to '/tmp/ATMqIyjgt' [info] [2022-10-06 14:12:23] Job 457 "arFindingAidJob": Running: java -cp '/usr/share/nginx/atom/vendor/saxon-he-10.6.jar:/usr/share/nginx/atom/vendor/resolver.jar' net.sf.saxon.Transform -s:'/tmp/ead_0000000452_test.xml' -xsl:'/tmp/ATMqIyjgt' -o:'/tmp/ATM7bNjLI' -catalog:'/usr/share/nginx/atom/data/xml/catalog.xml' 2>&1 [info] [2022-10-06 14:12:25] Job 457 "arFindingAidJob": Running: fop -r -q -fo '/tmp/ATM7bNjLI' -pdf '/usr/share/nginx/atom/downloads/test.pdf' 2>&1 [err] [2022-10-06 14:12:25] Job 457 "arFindingAidJob": Converting the XSL-FO document to a pdf file has failed. [err] [2022-10-06 14:12:25] Job 457 "arFindingAidJob": Exception: ERROR(FOP): [warning] /usr/bin/fop: JVM flavor 'sun' not understood Exception in thread "main" java.lang.NoSuchMethodError: java.nio.CharBuffer.limit(I)Ljava/nio/CharBuffer;    at org.apache.fop.fo.FOText.characters(FOText.java:143)    at org.apache.fop.fo.FObjMixed.characters(FObjMixed.java:74)    at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.characters(FOTreeBuilder.java:390)    at org.apache.fop.fo.FOTreeBuilder.characters(FOTreeBuilder.java:136)    at org.apache.xalan.transformer.TransformerIdentityImpl.characters(TransformerIdentityImpl.java:1126)    at org.apache.xerces.parsers.AbstractSAXParser.characters(Unknown Source)    at org.apache.xerces.xinclude.XIncludeHandler.characters(Unknown Source)    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanContent(Unknown Source)    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)    at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)    at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:485)    at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:293)    at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:116)    at org.apache.fop.cli.Main.startFOP(Main.java:183)    at org.apache.fop.cli.Main.main(Main.java:214) [err] [2022-10-06 14:12:25] Job 457 "arFindingAidJob": File: /usr/share/nginx/atom/lib/QubitFindingAidGenerator.class.php [err] [2022-10-06 14:12:25] Job 457 "arFindingAidJob": Line: 564

Dan Gillean

unread,
Oct 7, 2022, 9:27:05 AM10/7/22
to ica-ato...@googlegroups.com
Hi Richard, 

I think this error might be on us. 

While there are some aspects of this error message I don't recall seeing before, one of our developers pointed out that this looks a lot like the following issue: 
We never found a perfect solution for the issue above - but the workaround was to use a different version of Java (openjdk-11, rather than openjdk-8). OpenJDK-11 is not the recommended version of Java for the version of Elasticsearch that we use, but it DOES work (and in fact was the version we recommended previously in release 2.5). These changes allowed the finding aids to generate as expected. 

However, it looks like the 2.7 installation documentation never got updated to reflect this discovery. I apologize for this - one of the dangers of installing a development version! That said, though it has caused you some grief I am grateful you've attempted this install, found the issue, and reported it to us, so we can resolve it. 

Now, let's see if we can figure out how to do so. 

Per the issue ticket, we want to make sure that we are using Apache FOP version 2.4, and for Java, the openjdk-11-jre-headless package. Let's first confirm my theory by checking the versions you have installed. Run the following commands: 
  • fop -v
  • java --version
If we had the correct versions of everything installed, you should see an output like the following: 

/usr/share/nginx/atom$ fop -v
[warning] /usr/bin/fop: JVM flavor 'sun' not understood
[warning] /usr/bin/fop: Unable to locate avalon-framework in /usr/share/java
FOP Version 2.4
[~/atom] (qa/2.x)
/usr/share/nginx/atom$ java --version
openjdk 11.0.11 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)

However, I suspect that, because our docs were not properly updated, the Java version is probably different in your output. 

Let's see if we can remove the Java 8 version. Try the following: 
  • sudo apt-get remove openjdk*
  • sudo apt-get clean
And then run the java --version command again. Hopefully that should have uninstalled Java, meaning nothing should be returned when you check the version. If that * command above doesn't work, try: 
  • sudo apt-get remove openjdk-8-jre
Now let's try installing the version we want: 
  • sudo apt install openjdk-11-jre-headless software-properties-common
Then we can check the java version again to see if it matches our expectations. 

Assuming all that has worked, let's now confirm that Elasticsearch will still work with the dependency change. First, let's restart ES, and then we'll try repopulating the search index to see if it runs as expected: 
  • sudo systemctl restart elasticsearch
  • php symfony search:populate
If this breaks for some reason or gives you an error, then please check the following to give us more information: 
  • Let us know what the actual error returned was in the command prompt when you tried to run the search:populate command
  • Run php symfony search:status and share the output
  • Check the ES logs at /var/log/elasticsearch/elasticsearch.log and see if you can find any related error messages - if so, please share them
However, hopefully none of that will be needed, and ES will work with the Java version change and restart! 

At this point, it's time to test finding aid generation again. Let us know how it goes! And once again, our apologies for the documentation error - we'll get that fixed up as soon as possible.

Finally, as a PS: it's implied above, but the reason you're seeing Apache in the error logs is because we use Apache FOP to transform the EAD XML from your archival descriptions into PDF finding aids. The Apache Foundation oversees many more tools than just their webserver! 

Cheers, 

Dan Gillean, MAS, MLIS
AtoM Program Manager
Artefactual Systems, Inc.
604-527-2056
@accesstomemory
he / him

Richard Chapplow

unread,
Oct 11, 2022, 5:23:53 PM10/11/22
to AtoM Users
Hi Dan,

I think we're making some progress!

  • fop -v
  • [warning] /usr/bin/fop: JVM flavor 'sun' not understood
  • FOP Version 2.6
  • java -version (java --version gave me the error: Unrecognized option: --version)
  • openjdk version "1.8.0_342"
    OpenJDK Runtime Environment (build 1.8.0_342-8u342-b07-0ubuntu1~22.04-b07)
    OpenJDK 64-Bit Server VM (build 25.342-b07, mixed mode)
After removing openjdk, reinstalling it, and restarting elasticsearch:
  • php symfony search:populate
  • Unable to open the log file "/usr/share/nginx/atom/log/qubit_cli.log" for writing.
    [exception]   500 | Internal Server Error | sfFileException[message]     Unable to open the log file "/usr/share/nginx/atom/log/qubit_cli.log" for writing.[stack trace]
      at () in SF_ROOT_DIR/vendor/symfony/lib/log/sfFileLogger.class.php line 75
      at sfFileLogger->initialize() in SF_ROOT_DIR/vendor/symfony/lib/log/sfLogger.class.php line 52
      at sfLogger->__construct() in SF_ROOT_DIR/cache/qubit/cli/config/config_factories.yml.php line 11
      at require('/usr/share/nginx/atom/cache/qubit/cli/config/config_factories.yml.php') in SF_ROOT_DIR/vendor/symfony/lib/util/sfContext.class.php line 155
      at sfContext->loadFactories() in SF_ROOT_DIR/vendor/symfony/lib/util/sfContext.class.php line 77
      at sfContext->initialize() in SF_ROOT_DIR/vendor/symfony/lib/util/sfContext.class.php line 60
      at sfContext::createInstance() in SF_ROOT_DIR/lib/task/search/arPopulateTask.class.php line 27
      at arSearchPopulateTask->execute() in SF_ROOT_DIR/vendor/symfony/lib/task/sfBaseTask.class.php line 68
      at sfBaseTask->doRun() in SF_ROOT_DIR/vendor/symfony/lib/task/sfTask.class.php line 97
      at sfTask->runFromCLI() in SF_ROOT_DIR/vendor/symfony/lib/command/sfSymfonyCommandApplication.class.php line 76
      at sfSymfonyCommandApplication->run() in SF_ROOT_DIR/vendor/symfony/lib/command/cli.php line 20
      at include('/usr/share/nginx/atom/vendor/symfony/lib/command/cli.php') in SF_ROOT_DIR/symfony line 14
    [symfony]     v. 1.4.20 (symfony-project.org)
  • php symfony search:status
  • Unable to open the log file "/usr/share/nginx/atom/log/qubit_cli.log" for writing.
    <!DOCTYPE html>
    <html>
      <head>
        <title>Error</title>
        <link rel="stylesheet" type="text/css" href="symfony/plugins/arDominionPlugin/css/main.css"/>
      </head>
      <body class="yui-skin-sam admin error">

        <div id="wrapper" class="container">

          <section class="admin-message" id="error-404">

            <h2>
              <img alt="" src="symfony/images/logo.png"/>
              Oops! An Error Occurred
            </h2>

            <p>
              Sorry, something went wrong.<br />
              The server returned a <code>500 Internal Server Error</code>.
            </p>

            <div class="tips">
              <p>
                Try again a little later or ask in the <a href="https://groups.google.com/g/ica-atom-users">discussion group</a>.<br />
                <a href="javascript:history.go(-1)">Back to previous page.</a>
              </p>
            </div>

          </section>

        </div>

      </body>
    </html>

  • /var/log/elasticsearch/elasticsearch.log
  • [2022-10-11T06:45:04,316][INFO ][o.e.n.Node               ] [] initializing ...
    [2022-10-11T06:45:04,512][INFO ][o.e.e.NodeEnvironment    ] [5PkDyZ3] using [1] data paths, mounts [[/ (/dev/sdb2)]], net usable_space [859.6gb], net total_space [915.3gb], spins? [no], types [ext4]
    [2022-10-11T06:45:04,513][INFO ][o.e.e.NodeEnvironment    ] [5PkDyZ3] heap size [1.9gb], compressed ordinary object pointers [true]
    [2022-10-11T06:45:04,559][INFO ][o.e.n.Node               ] node name [5PkDyZ3] derived from node ID [5PkDyZ3iRf-IAM3Wl0KP_Q]; set [node.name] to override
    [2022-10-11T06:45:04,560][INFO ][o.e.n.Node               ] version[5.6.16], pid[1409], build[3a740d1/2019-03-13T15:33:36.565Z], OS[Linux/5.15.0-48-generic/amd64], JVM[Private Build/OpenJDK 64-Bit Server VM/1.8.0_342/25.342-b07]
    [2022-10-11T06:45:04,560][INFO ][o.e.n.Node               ] JVM arguments [-Xms2g, -Xmx2g, -XX:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=75, -XX:+UseCMSInitiatingOccupancyOnly, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -Djdk.io.permissionsUseCanonicalPath=true, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Dlog4j.skipJansi=true, -XX:+HeapDumpOnOutOfMemoryError, -Des.path.home=/usr/share/elasticsearch]
    [2022-10-11T06:45:06,207][INFO ][o.e.p.PluginsService     ] [5PkDyZ3] loaded module [aggs-matrix-stats]
    [2022-10-11T06:45:06,207][INFO ][o.e.p.PluginsService     ] [5PkDyZ3] loaded module [ingest-common]
    [2022-10-11T06:45:06,207][INFO ][o.e.p.PluginsService     ] [5PkDyZ3] loaded module [lang-expression]
    [2022-10-11T06:45:06,207][INFO ][o.e.p.PluginsService     ] [5PkDyZ3] loaded module [lang-groovy]
    [2022-10-11T06:45:06,207][INFO ][o.e.p.PluginsService     ] [5PkDyZ3] loaded module [lang-mustache]
    [2022-10-11T06:45:06,207][INFO ][o.e.p.PluginsService     ] [5PkDyZ3] loaded module [lang-painless]
    [2022-10-11T06:45:06,207][INFO ][o.e.p.PluginsService     ] [5PkDyZ3] loaded module [parent-join]
    [2022-10-11T06:45:06,207][INFO ][o.e.p.PluginsService     ] [5PkDyZ3] loaded module [percolator]
    [2022-10-11T06:45:06,207][INFO ][o.e.p.PluginsService     ] [5PkDyZ3] loaded module [reindex]
    [2022-10-11T06:45:06,207][INFO ][o.e.p.PluginsService     ] [5PkDyZ3] loaded module [transport-netty3]
    [2022-10-11T06:45:06,208][INFO ][o.e.p.PluginsService     ] [5PkDyZ3] loaded module [transport-netty4]
    [2022-10-11T06:45:06,208][INFO ][o.e.p.PluginsService     ] [5PkDyZ3] no plugins loaded
    [2022-10-11T06:45:07,271][INFO ][o.e.d.DiscoveryModule    ] [5PkDyZ3] using discovery type [zen]
    [2022-10-11T06:45:07,697][INFO ][o.e.n.Node               ] initialized
    [2022-10-11T06:45:07,698][INFO ][o.e.n.Node               ] [5PkDyZ3] starting ...
    [2022-10-11T06:45:07,806][INFO ][o.e.t.TransportService   ] [5PkDyZ3] publish_address {127.0.0.1:9300}, bound_addresses {[::1]:9300}, {127.0.0.1:9300}
    [2022-10-11T06:45:10,846][INFO ][o.e.c.s.ClusterService   ] [5PkDyZ3] new_master {5PkDyZ3}{5PkDyZ3iRf-IAM3Wl0KP_Q}{efSKubZ3Svet1dZjaxMang}{127.0.0.1}{127.0.0.1:9300}, reason: zen-disco-elected-as-master ([0] nodes joined)
    [2022-10-11T06:45:10,856][INFO ][o.e.h.n.Netty4HttpServerTransport] [5PkDyZ3] publish_address {127.0.0.1:9200}, bound_addresses {[::1]:9200}, {127.0.0.1:9200}
    [2022-10-11T06:45:10,856][INFO ][o.e.n.Node               ] [5PkDyZ3] started
    [2022-10-11T06:45:11,214][INFO ][o.e.g.GatewayService     ] [5PkDyZ3] recovered [1] indices into cluster_state
    [2022-10-11T06:45:11,540][INFO ][o.e.c.r.a.AllocationService] [5PkDyZ3] Cluster health status changed from [RED] to [YELLOW] (reason: [shards started [[atom][0]] ...]).
    [2022-10-11T13:54:34,730][INFO ][o.e.n.Node               ] [5PkDyZ3] stopping ...
    [2022-10-11T13:54:34,754][INFO ][o.e.n.Node               ] [5PkDyZ3] stopped
    [2022-10-11T13:54:34,754][INFO ][o.e.n.Node               ] [5PkDyZ3] closing ...
    [2022-10-11T13:54:34,758][INFO ][o.e.n.Node               ] [5PkDyZ3] closed
    [2022-10-11T13:54:36,541][INFO ][o.e.n.Node               ] [] initializing ...
    [2022-10-11T13:54:36,596][INFO ][o.e.e.NodeEnvironment    ] [5PkDyZ3] using [1] data paths, mounts [[/ (/dev/sdb2)]], net usable_space [859.9gb], net total_space [915.3gb], spins? [no], types [ext4]
    [2022-10-11T13:54:36,596][INFO ][o.e.e.NodeEnvironment    ] [5PkDyZ3] heap size [1.9gb], compressed ordinary object pointers [true]
    [2022-10-11T13:54:36,603][INFO ][o.e.n.Node               ] node name [5PkDyZ3] derived from node ID [5PkDyZ3iRf-IAM3Wl0KP_Q]; set [node.name] to override
    [2022-10-11T13:54:36,603][INFO ][o.e.n.Node               ] version[5.6.16], pid[7978], build[3a740d1/2019-03-13T15:33:36.565Z], OS[Linux/5.15.0-48-generic/amd64], JVM[Ubuntu/OpenJDK 64-Bit Server VM/11.0.16/11.0.16+8-post-Ubuntu-0ubuntu122.04]
    [2022-10-11T13:54:36,604][INFO ][o.e.n.Node               ] JVM arguments [-Xms2g, -Xmx2g, -XX:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=75, -XX:+UseCMSInitiatingOccupancyOnly, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -Djdk.io.permissionsUseCanonicalPath=true, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Dlog4j.skipJansi=true, -XX:+HeapDumpOnOutOfMemoryError, -Des.path.home=/usr/share/elasticsearch]
    [2022-10-11T13:54:37,071][INFO ][o.e.p.PluginsService     ] [5PkDyZ3] loaded module [aggs-matrix-stats]
    [2022-10-11T13:54:37,071][INFO ][o.e.p.PluginsService     ] [5PkDyZ3] loaded module [ingest-common]
    [2022-10-11T13:54:37,071][INFO ][o.e.p.PluginsService     ] [5PkDyZ3] loaded module [lang-expression]
    [2022-10-11T13:54:37,071][INFO ][o.e.p.PluginsService     ] [5PkDyZ3] loaded module [lang-groovy]
    [2022-10-11T13:54:37,071][INFO ][o.e.p.PluginsService     ] [5PkDyZ3] loaded module [lang-mustache]
    [2022-10-11T13:54:37,071][INFO ][o.e.p.PluginsService     ] [5PkDyZ3] loaded module [lang-painless]
    [2022-10-11T13:54:37,071][INFO ][o.e.p.PluginsService     ] [5PkDyZ3] loaded module [parent-join]
    [2022-10-11T13:54:37,072][INFO ][o.e.p.PluginsService     ] [5PkDyZ3] loaded module [percolator]
    [2022-10-11T13:54:37,072][INFO ][o.e.p.PluginsService     ] [5PkDyZ3] loaded module [reindex]
    [2022-10-11T13:54:37,072][INFO ][o.e.p.PluginsService     ] [5PkDyZ3] loaded module [transport-netty3]
    [2022-10-11T13:54:37,072][INFO ][o.e.p.PluginsService     ] [5PkDyZ3] loaded module [transport-netty4]
    [2022-10-11T13:54:37,072][INFO ][o.e.p.PluginsService     ] [5PkDyZ3] no plugins loaded
    [2022-10-11T13:54:37,954][INFO ][o.e.d.DiscoveryModule    ] [5PkDyZ3] using discovery type [zen]
    [2022-10-11T13:54:38,313][INFO ][o.e.n.Node               ] initialized
    [2022-10-11T13:54:38,313][INFO ][o.e.n.Node               ] [5PkDyZ3] starting ...
    [2022-10-11T13:54:38,499][INFO ][o.e.t.TransportService   ] [5PkDyZ3] publish_address {127.0.0.1:9300}, bound_addresses {[::1]:9300}, {127.0.0.1:9300}
    [2022-10-11T13:54:41,560][INFO ][o.e.c.s.ClusterService   ] [5PkDyZ3] new_master {5PkDyZ3}{5PkDyZ3iRf-IAM3Wl0KP_Q}{IPleDuJvSjGQJ_JrEh0Mkg}{127.0.0.1}{127.0.0.1:9300}, reason: zen-disco-elected-as-master ([0] nodes joined)
    [2022-10-11T13:54:41,572][INFO ][o.e.h.n.Netty4HttpServerTransport] [5PkDyZ3] publish_address {127.0.0.1:9200}, bound_addresses {[::1]:9200}, {127.0.0.1:9200}
    [2022-10-11T13:54:41,572][INFO ][o.e.n.Node               ] [5PkDyZ3] started
    [2022-10-11T13:54:42,054][INFO ][o.e.g.GatewayService     ] [5PkDyZ3] recovered [1] indices into cluster_state
    [2022-10-11T13:54:42,333][INFO ][o.e.c.r.a.AllocationService] [5PkDyZ3] Cluster health status changed from [RED] to [YELLOW] (reason: [shards started [[atom][0]] ...]).

One thing I did notice now is that when I do hit the Generate Finding Aid button, it shows Status: Error immediately whereas before it would take an actual refresh of the page to appear.

Oh and one thing I should note about the documentation is that for installing PHP7.4, the commands don't work out of the box for me. I had to search and add the Ondřej Surý repository and then used sudo update-alternatives --config php to set the php version to 7.4.

Dan Gillean

unread,
Oct 12, 2022, 1:13:15 PM10/12/22
to ica-ato...@googlegroups.com
Hi Richard, 

So, first in terms of the PHP 7.4 issues: 

I suspect this is because, from what I can tell, it looks like you've decided to use Ubuntu 22.04, rather than the 20.04 version we have tested with the upcoming AtoM 2.7 release. 

Each Ubuntu release, particularly the LTS ones, will change what packages are available/supported, and what versions of these are installed by default. It appears that 22.04 will install PHP 8 or 8.1 by default, and FOP 2.6 rather than the 2.4 version. 

It's hard to say what other packages and dependencies this may affect, and what impact this will have on your installation - it makes troubleshooting a bit harder. Hopefully using FOP 2.6 isn't introducing additional issues - let's leave it as is for now. 

As for the symfony task errors: are these resolved if you verbosely run the commands specifically by the www-data user? Earlier in this thread we configured the permissions so that the www-user has the correct permissions in AtoM: 
  • sudo chown -R www-data:www-data /usr/share/nginx/atom
If that is in place but running the commands is still producing a permissions error message, try running them as the www-data user. For example: 
  • sudo -u www-data php symfony search:populate
  • sudo -u www-data php symfony search:status
Let us know if that helps!

Finally, the issue of the error occurring as soon as you try finding aid generation. Let's check both the related job details page (go to Manage > Jobs, find the right job, and check the details page to see if anything is shown in the console output), and the Nginx error log again to see what error message we're getting now. Hopefully it's something different, and will tell us more about what's going on. 

Cheers, 

Dan Gillean, MAS, MLIS
AtoM Program Manager
Artefactual Systems, Inc.
604-527-2056
@accesstomemory
he / him

Richard Chapplow

unread,
Oct 17, 2022, 8:58:33 PM10/17/22
to AtoM Users
Hi Dan,

Ack! Showing my lack of Linux use yet again! So I decided to just start over. (I've got the installing Ubuntu part down pretty well now) I installed 20.04 and went through the install instructions. Everything went pretty smoothly. AtoM is up and running and it all looks good, but when I go to generate a finding aid, I get an error. Looking in Manage -- Jobs -- Job Report I see the following:

Error(s):
2022-10-17 17:45:08 Exception: ERROR(FOP): sh: 1: fop: not found
2022-10-17 17:45:08 File: /usr/share/nginx/atom/lib/QubitFindingAidGenerator.class.php
2022-10-17 17:45:08 Line: 564

Log:
[info] [2022-10-17 17:45:07] Job 457 "arFindingAidJob": Job started. [info] [2022-10-17 17:45:07] Job 457 "arFindingAidJob": Parameters: {"objectId":"452","description":"Generating finding aid for: Test","name":"arFindingAidJob","id":"457"} [info] [2022-10-17 17:45:07] Job 457 "arFindingAidJob": Generating a public finding aid (test)... [info] [2022-10-17 17:45:07] Job 457 "arFindingAidJob": Generated EAD file "/tmp/ead_0000000452_test.xml" [info] [2022-10-17 17:45:07] Job 457 "arFindingAidJob": Rendering XSL template '/usr/share/nginx/atom/lib/task/pdf/ead-pdf-inventory-summary.xsl' to '/tmp/ATMeJaEE2' [info] [2022-10-17 17:45:07] Job 457 "arFindingAidJob": Running: java -cp '/usr/share/nginx/atom/vendor/saxon-he-10.6.jar:/usr/share/nginx/atom/vendor/resolver.jar' net.sf.saxon.Transform -s:'/tmp/ead_0000000452_test.xml' -xsl:'/tmp/ATMeJaEE2' -o:'/tmp/ATMQvha33' -catalog:'/usr/share/nginx/atom/data/xml/catalog.xml' 2>&1 [info] [2022-10-17 17:45:08] Job 457 "arFindingAidJob": Running: fop -r -q -fo '/tmp/ATMQvha33' -pdf '/usr/share/nginx/atom/downloads/test.pdf' 2>&1 [err] [2022-10-17 17:45:08] Job 457 "arFindingAidJob": Converting the XSL-FO document to a pdf file has failed. [err] [2022-10-17 17:45:08] Job 457 "arFindingAidJob": Exception: ERROR(FOP): sh: 1: fop: not found [err] [2022-10-17 17:45:08] Job 457 "arFindingAidJob": File: /usr/share/nginx/atom/lib/QubitFindingAidGenerator.class.php [err] [2022-10-17 17:45:08] Job 457 "arFindingAidJob": Line: 564

At least the error is way shorter this time! Hehehe

Thanks,
Richard

Dan Gillean

unread,
Oct 18, 2022, 8:13:51 AM10/18/22
to ica-ato...@googlegroups.com
Hi Richard, 

It sounds like Apache FOP might not be installed this time. What do you get when you try to check the FOP version?
  • fop -v
Is it possible that you missed this section linked below in the installation docs? Can you try running the first command here again?
Afterwards, let's just make sure our environment is ready following any changes. Let's clear the application cache, restart PHP-FPM and Nginx, and we will also restart the job scheduler (responsible for handling the background jobs). 

The following commands are all generally useful for resolving common issues and maintaining AtoM. All these commands should be run from AtoM's root installation directory - which is typically /usr/share/nginx/atom. If the symfony commands don't work at first, then a) make sure you are in the root AtoM installation directory, and b) try them by explicitly specifying the www-data user (i.e. adding sudo -u www-data to the beginning of the commands). 

Clear the application cache: 
  • php symfony cc
Restart PHP-FPM: 
  • sudo systemctl restart php7.4-fpm
Reload Nginx: 
  • sudo systemctl reload nginx
Now for the job scheduler. When we created the configuration file for it, we added some logic that will have the atom-worker attempt to restart itself
 if it fails - but to prevent it from getting trapped in an endless loop if there's a fatal error, there's also a hard limit of 3 attempts in 24 hours set, after which the fail counter needs to be manually reset. Let's reset that fail counter and the restart the job scheduler for good measure, to make sure our attempt to install FOP fully takes effect next run: 
  • sudo systemctl reset-failed atom-worker
  • sudo systemctl restart atom-worker
You can also check the status of the atom-worker with:
Hopefully that will set things right! Let us know how it goes!

Cheers, 

Dan Gillean, MAS, MLIS
AtoM Program Manager
Artefactual Systems, Inc.
604-527-2056
@accesstomemory
he / him

Richard Chapplow

unread,
Oct 18, 2022, 12:31:57 PM10/18/22
to AtoM Users
Hi Dan,

I would have sworn that I did this command: sudo apt install --no-install-recommends fop libsaxon-java  but obviously I somehow missed it. Everything works! Now on to the fun part of learning the ins and outs of properly populating all the info.

Thank you so much for all the help!

RIchard
Reply all
Reply to author
Forward
0 new messages