Description
Created by: Sewanee-raval
Description
Processing will not start for anyone except the first user in a multiuser classroom Ubuntu computer.
Expected Behavior
Processing will start and run as normal.
Current Behavior
students execute processing, either from an command line or from an icon.
First student on a computer has no problems using processing all features work.
Second student (or more) logs into the computer, executes processing and gets an error.
The first is a popup which actually describes what causes the error:
The second error can be see if processing is executed from the command line. If executed from an shortcut then the error below is hidden.
Exception in thread "Contribution List Downloader" java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because the return value of "processing.app.Base.getToolContribs()" is null
at processing.app.contrib.ContributionListing.countUpdates(ContributionListing.java:348)
at processing.app.contrib.ContributionListing.lambda$downloadAvailableList$1(ContributionListing.java:227)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:308)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:771)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:741)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Steps to Reproduce
- from the command line execute processing as user#1
student01@owen: ~$ processing
student01 can use processing as normal - from the command line execute processing as user#2
student02@owen:~$ processing
student02 gets error popup about not being able to create /tmp/processing/ - Hit enter and student02 gets the error message about "Contribution List Downloader"
Your Environment
- Processing version: 4.0.1
- Operating System and OS version: Ubuntu Linux 22.04 LTS Desktop
- Other information: Users are authenticated to an Active Directory Domain server and their home directories are mounted via NFS / SSHFS. The classroom that they are using has 20+ computers and all of them show the same issue.
Possible Causes / Solutions
The issue is caused by the software creating a 'processing' directory in the /tmp folder and then not removing the directory
This can be seen after student01 uses processing and exits the program (and logs out of their profile).
- change directory to /tmp
- ls -la
drwxr-xr-x student01 domainuser 4096 Sep 08 09:56 processing - cd into processing directory and it show temp sketchbooks that processing has created during its launch
The permissions are limited to student01 who has full control over the directory.
All other users are limited to read and execute permissions only, no write permissions.
The sketchbook settings in the preference file are set to /home/student01/sketchbook
It appears that processing is not cleaning up the /tmp/processing folder like it does the other files that it creates in /tmp and thus additional users can not use processing because the permissions on the folder are preventing their use.
- If I delete the /tmp/processing folder any student can use processing again however it reverts to the same issue just with the new userid.
Activity