Skip to content

Processing will not start for second user (or more) on a multiuser classroom computer. #549

Closed
@processing-bot

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:
Screenshot from 2022-09-08 10-03-18

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

  1. from the command line execute processing as user#1
    student01@owen: ~$ processing
    student01 can use processing as normal
  2. from the command line execute processing as user#2
    student02@owen:~$ processing
    student02 gets error popup about not being able to create /tmp/processing/
  3. 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).

  1. change directory to /tmp
  2. ls -la
    drwxr-xr-x student01 domainuser 4096 Sep 08 09:56 processing
  3. 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.

  1. 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    has attachmentAttachment was not transfered from GitLab

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions