[Support] jasonbean - Apache Guacamole


Message added by Taddeusz,

Before upgrading to 1.5.0 you need to have first upgraded to 1.4.0-3 of the container. I discovered that prior to 1.4.0-3 it was not shutting down MariaDB correctly and causing the database to be left in a dirty state.

 

If after upgrading to 1.5.0 you discover that MariaDB is stopping and the log mentions something about needing to open the database in an older version of MariaDB you should downgrade specifically to 1.4.0-3, start the container and make sure it's running correctly. Then you may upgrade to 1.5.0.

Recommended Posts

Hello, 

I don't use mariadb and upgraded the docker and have this in the log

 

User UID: 99
User GID: 100
----------------------
Using existing properties file.
Using existing MySQL extension.
Using existing TOTP extension.
No permissions changes needed.
Database exists.
Database upgrade not needed.
2023-04-01 16:38:22,770 INFO Included extra file "/etc/supervisor/conf.d/supervisord.conf" during parsing
2023-04-01 16:38:22,770 INFO Set uid to user 0 succeeded
2023-04-01 16:38:22,773 INFO supervisord started with pid 23
2023-04-01 16:38:23,779 INFO spawned: 'guacd' with pid 24
2023-04-01 16:38:23,782 INFO spawned: 'mariadb' with pid 25
2023-04-01 16:38:23,786 INFO spawned: 'tomcat' with pid 26
guacd[24]: INFO:        Guacamole proxy daemon (guacd) version 1.5.0 started
guacd[24]: INFO:        Listening on host 0.0.0.0, port 4822
2023-04-01 16:38:24,823 INFO success: guacd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2023-04-01 16:38:24,824 INFO success: mariadb entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2023-04-01 16:38:24,824 INFO success: tomcat entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2023-04-01 16:38:24,824 INFO exited: mariadb (exit status 1; not expected)
2023-04-01 16:38:25,829 INFO spawned: 'mariadb' with pid 62
2023-04-01 16:38:26,870 INFO success: mariadb entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2023-04-01 16:38:26,871 INFO exited: mariadb (exit status 1; not expected)
2023-04-01 16:38:27,875 INFO spawned: 'mariadb' with pid 68
2023-04-01 16:38:28,913 INFO success: mariadb entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2023-04-01 16:38:28,914 INFO exited: mariadb (exit status 1; not expected)
2023-04-01 16:38:29,919 INFO spawned: 'mariadb' with pid 73
2023-04-01 16:38:30,958 INFO success: mariadb entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2023-04-01 16:38:30,959 INFO exited: mariadb (exit status 1; not expected)
2023-04-01 16:38:31,964 INFO spawned: 'mariadb' with pid 79
2023-04-01 16:38:32,999 INFO success: mariadb entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2023-04-01 16:38:33,000 INFO exited: mariadb (exit status 1; not expected)

Any idea how to fix?
Any idea how to downgrade to a previous repository ?


GUI error when attempting to access apache guac

image.png.32afa05ab837af78f27db81eba000321.png

Edited by bombz
Link to comment

@bombz You say you're not using MariaDB but you obviously have OPT_MYSQL set to "Y" in your configuration because it would not attempt to install the MySQL extension otherwise. MariaDB is essentially equivalent to and a drop-in replacement for MySQL. What I would recommend is downgrading to the 1.4.0-3 release and then upgrade back to latest.

Link to comment
On 3/23/2023 at 10:19 PM, Registered55 said:

just updated docker now, wish  i didn't to be honest (is it me or is updating dockers these days is becoming very hit and miss with issues)??

 

anyway i'm getting issues in logs and it's broke 

 

2023-03-24 02:05:13,819 INFO exited: mariadb (exit status 1; not expected)
2023-03-24 02:05:14,821 INFO spawned: 'mariadb' with pid 251
2023-03-24 02:05:15,844 INFO success: mariadb entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2023-03-24 02:05:15,845 INFO exited: mariadb (exit status 1; not expected)
2023-03-24 02:05:16,848 INFO spawned: 'mariadb' with pid 256
2023-03-24 02:05:17,875 INFO success: mariadb entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2023-03-24 02:05:17,875 INFO exited: mariadb (exit status 1; not expected)
2023-03-24 02:05:18,878 INFO spawned: 'mariadb' with pid 261
2023-03-24 02:05:19,903 INFO success: mariadb entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2023-03-24 02:05:19,903 INFO exited: mariadb (exit status 1; not expected)
2023-03-24 02:05:20,905 INFO spawned: 'mariadb' with pid 266
2023-03-24 02:05:21,934 INFO success: mariadb entered RUNNING state, process 

 

 

how do i down grade back to the previous version which was working great ( i have now removed the plugin that auto updates dockers...i wished i stuck with manual updating).

 

 

what do i do to go back wo the working one?

 

EDIT

 

i done "jasonbean/guacamole:1.4.0-3"

 

it downgraded and working great, i will leave this alone now, and stop auto updating dockers!

image.thumb.png.4c889bc49e18e5f92288b77900098e0d.png

 

 

Hello, 

I appreciate this post. 
I was able to successfully downgrade to the following repository successfully

 

Repository: jasonbean/guacamole:1.4.0-3

 

usermod: no changes
chown: cannot access 'var/log/mysql': No such file or directory
----------------------
User UID: 99
User GID: 100
----------------------
Using existing properties file.
Upgrading MySQL extension.
Upgrading TOTP extension.
Updating user permissions.
Database exists.
Database upgrade not needed.
2023-04-01 16:45:46,494 INFO Included extra file "/etc/supervisor/conf.d/supervisord.conf" during parsing
2023-04-01 16:45:46,494 INFO Set uid to user 0 succeeded
2023-04-01 16:45:46,498 INFO supervisord started with pid 37
2023-04-01 16:45:47,502 INFO spawned: 'guacd' with pid 40
2023-04-01 16:45:47,505 INFO spawned: 'mariadb' with pid 41
2023-04-01 16:45:47,508 INFO spawned: 'tomcat' with pid 42
guacd[40]: INFO:        Guacamole proxy daemon (guacd) version 1.4.0 started
guacd[40]: INFO:        Listening on host 0.0.0.0, port 4822
2023-04-01 16:45:48,653 INFO success: guacd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2023-04-01 16:45:48,654 INFO success: mariadb entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2023-04-01 16:45:48,654 INFO success: tomcat entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
guacd[40]: INFO:        Creating new client for protocol "rdp"

 

 

I did note the red banner in the thread... is there a detailed guide on how to perform this db upgrade for this container? 

Thank you.

Link to comment
7 minutes ago, Taddeusz said:

@bombz You say you're not using MariaDB but you obviously have OPT_MYSQL set to "Y" in your configuration because it would not attempt to install the MySQL extension otherwise. MariaDB is essentially equivalent to and a drop-in replacement for MySQL. What I would recommend is downgrading to the 1.4.0-3 release and then upgrade back to latest.

 

Thank you for the fast response, and do apologize if I missed something. 
Now that I am back on 1.4.0-3 what is the step process to upgrade the db and container successfully? 

Do I have to change:
OPT_MYSQL: from Y to N ?

Edited by bombz
Link to comment
Just now, bombz said:

 

Thank you for the fast response, and do apologize if I missed something. 
Now that I am back on 1.4.0-3 what is the step process to upgrade the db successfully? 

Do I have to change:
OPT_MYSQL: from Y to N ?

If you’re not using the included MariaDB/MySQL then what are you using to store the Guacamole data? Do you have the MySQL settings in your guacamole.config file commented out?

Link to comment
18 minutes ago, bombz said:

 

Hello again,

I will attempt to be as detailed as possible to give you insight to assist with this concern.

I previously used mariadb a long time ago. 
I then since migrated over to MySQL docker (stopping and removing mariadb) but did take a backup of the mariadb docker folder for archive purposes.

Since the migration to MySQL months ago, apacheguac was not affected in that migration and continued to be operational (migrated mariadb to MySQL for my nextcloud docker instance). 

Today I was checking my docker instances, which I noted some updates were available. I generally always check my dockers are accessible via my revproxy (which they were) today.
I then decided to update the guac docker, to which led me here to the thread to see any posts related to the error. 

 

MySQL db docker instance 'repository: mysql'  does not have any physical db listed or indicated to apacheguac.

 

Currently downgrading my apacheguac instance, it is back and operational, w/o meriadb docker deployed at all (not in my set of dockers)


So I am questioning (or clearly not understanding) the link between MySQL or mariadb and the guac docker.
Does guac have it's own SQL db embedded within the docker itself? 

Looking for a solution to process the apacheguac upgrade process correctly.

Hope that helps :-) 


I think I get it now.
I must have been on an older version of ApacheGuacamole 

I pushed the update today using jasonbean/guacamole

Which I then had the errors described above

 

I then was able to downgrade to jasonbean/guacamole:1.4.0-3

Which was then operational 

 

I then edited the repository to jasonbean/guacamole

Which now shows the deamon started on version 1.5.0

 

----------------------
User UID: 99
User GID: 100
----------------------
Using existing properties file.
Upgrading MySQL extension.
Upgrading TOTP extension.
Updating user permissions.
Database exists.
Database upgrade not needed.
2023-04-01 17:24:59,749 INFO Included extra file "/etc/supervisor/conf.d/supervisord.conf" during parsing
2023-04-01 17:24:59,750 INFO Set uid to user 0 succeeded
2023-04-01 17:24:59,755 INFO supervisord started with pid 33
2023-04-01 17:25:00,761 INFO spawned: 'guacd' with pid 34
2023-04-01 17:25:00,764 INFO spawned: 'mariadb' with pid 35
2023-04-01 17:25:00,768 INFO spawned: 'tomcat' with pid 36
guacd[34]: INFO:        Guacamole proxy daemon (guacd) version 1.5.0 started


I think I am good to go now. 
Apologies for misunderstanding this. From what I can tell I was on a version previous to 1.4.0-3 and upgraded to 1.5.0.
Make sense?

Thank you kindly.

Link to comment

@bombz In your guacamole.properties (sorry, previously I had the incorrect filename) file you should have settings that appear somewhat like the following:

### http://guacamole.apache.org/doc/gug/jdbc-auth.html#jdbc-auth-mysql
### MySQL properties
mysql-hostname: 127.0.0.1
mysql-port: 3306
mysql-database: guacamole
mysql-username: guacamole
mysql-password: <password>

By default mysql-hostname is set to 127.0.0.1. If you want to use an eternal database instance you would change that to match the correct address. If the mysql-hostname setting is NOT set to 127.0.0.1 in your properties file and you're 100% certain you're using an external database instance you can change your container to the latest-nomariadb. Personally that's how I have mine set because I DO use a separate MariaDB Docker container for multiple applications instead of having an assortment of separate databases.

 

To be sure, Guacamole requires a database of SOME kind even if it is using the default authentication of the user-mapping.xml file. Unlike the official Guacamole containers my container packages both the Guacamole server (guacd), the Guacamole client (using Tomcat), and MariaDB as the default authentication method. You are certainly welcome to use your own database instance which can be MySQL/MariaDB, PostgreSQL, Microsoft SQL Server, or the default user-mapping.xml file. Or a combination such as LDAP/Active Directory, SAML, or OpenID for the actual authentication plus some sort of database to store user and connection data.

 

Again, look at your container's guacamole.properties file to determine how your container is configured. If you're using Unraid it should be located in appdata/ApacheGuacamole/guacamole/guacamole.properties.

Link to comment
4 minutes ago, Taddeusz said:

@bombz In your guacamole.properties (sorry, previously I had the incorrect filename) file you should have settings that appear somewhat like the following:

### http://guacamole.apache.org/doc/gug/jdbc-auth.html#jdbc-auth-mysql
### MySQL properties
mysql-hostname: 127.0.0.1
mysql-port: 3306
mysql-database: guacamole
mysql-username: guacamole
mysql-password: <password>

By default mysql-hostname is set to 127.0.0.1. If you want to use an eternal database instance you would change that to match the correct address. If the mysql-hostname setting is NOT set to 127.0.0.1 in your properties file and you're 100% certain you're using an external database instance you can change your container to the latest-nomariadb. Personally that's how I have mine set because I DO use a separate MariaDB Docker container for multiple applications instead of having an assortment of separate databases.

 

To be sure, Guacamole requires a database of SOME kind even if it is using the default authentication of the user-mapping.xml file. Unlike the official Guacamole containers my container packages both the Guacamole server (guacd), the Guacamole client (using Tomcat), and MariaDB as the default authentication method. You are certainly welcome to use your own database instance which can be MySQL/MariaDB, PostgreSQL, Microsoft SQL Server, or the default user-mapping.xml file. Or a combination such as LDAP/Active Directory, SAML, or OpenID for the actual authentication plus some sort of database to store user and connection data.

 

Again, look at your container's guacamole.properties file to determine how your container is configured. If you're using Unraid it should be located in appdata/ApacheGuacamole/guacamole/guacamole.properties.


Hello,

This is wonderful information and I appreciate you taking the time to explain this.
Thank you for the location of the file @ appdata/ApacheGuacamole/guacamole/guacamole.properties


I have confirmed that my settings are the same as yours, I never changed any of these settings since the deployment of ApacheGuac years ago.

So based on what was discovered today, moving forward, I should be good to go with this current state?
 

### http://guacamole.apache.org/doc/gug/jdbc-auth.html#jdbc-auth-mysql
### MySQL properties
mysql-hostname: 127.0.0.1
mysql-port: 3306
mysql-database: guacamole
mysql-username: guacamole
mysql-password: <password>

 

Thank you.

Link to comment

@bombz I'm glad you got the upgrade working. While I was testing 1.5.0 the base container changed from Debian to Alpine. Debian used an older version of MariaDB and I came to realize the 1.4.0 container wasn't shutting it down correctly so I had to push an update of the 1.4.0 to correct this and then wait a few days before I released the 1.5.0 container to try and reduce the number of people having issues with the upgrade. The result of MariaDB not shutting down correctly before upgrading was that the database was left in a bad state and needed to be started back up in the old version of MariaDB and then shut down correctly before it could be read properly by the newer server version. I hope that makes things more clear for the community.

Link to comment
10 minutes ago, Taddeusz said:

@bombz I'm glad you got the upgrade working. While I was testing 1.5.0 the base container changed from Debian to Alpine. Debian used an older version of MariaDB and I came to realize the 1.4.0 container wasn't shutting it down correctly so I had to push an update of the 1.4.0 to correct this and then wait a few days before I released the 1.5.0 container to try and reduce the number of people having issues with the upgrade. The result of MariaDB not shutting down correctly before upgrading was that the database was left in a bad state and needed to be started back up in the old version of MariaDB and then shut down correctly before it could be read properly by the newer server version. I hope that makes things more clear for the community.


Appreciate the back and forth today.
I can only make out that I was on a version older than 1.4.0-3, and when pushing to 1.5.0 these mariadb errors occurred. 

If anyone runs into a concern as I did today, this would be my recommendation (although the dev-op may have better recommendations)

Upgrade:
ApacheGuacamole > Edit > Repository: jasonbean/guacamole:1.4.0-3
Select > Apply
Test the docker instance.

Upgrade Continued:
Once confirmed the above is operational proceed with the following

ApacheGuacamole > Edit > Repository: jasonbean/guacamole
Select > Apply
Test the docker instance.

 

The log should show the following if successful
 

uacd[34]: INFO:        Guacamole proxy daemon (guacd) version 1.5.0 started


Should be up-to-date 

This docker hands down has helped me so much, and I am happy to see it has development currently. I will do my best to check the thread BEFORE pushing future updates.

Thank you again :-) 

Edited by bombz
  • Like 1
Link to comment
4 minutes ago, Taddeusz said:

@bombz Yes, moving forward you should be fine now. There are some problems with the 1.5.0 version of VNC support that makes it impossible to connect to a host that requires a password. That should be corrected by the upcoming 1.5.1 release. Not sure when that will happen though.


Hey,

OK sweet, thanks for this info! 
Looking forward to future updates. 
Thanks again for all the hard work on this docker its been a game changer over the years!

Link to comment

@Zeroeth I've got a small update on the RDP printing issue. They've figured out what is causing the problem. They've changed the status to "in progress". Not sure when the fix will be made or what version it will be implemented in. They downgraded the priority to "minor" but since this affects everyone's ability to print I would hope it makes it into 1.5.1.

 

BTW, here is the JIRA issue: https://issues.apache.org/jira/browse/GUACAMOLE-1755

Edited by Taddeusz
  • Like 1
  • Thanks 1
Link to comment

hi!

 

i'm using ApacheGuacamoleNoMariaDB and when I try to access I get the following message:

DRGyDcc.png

I dont seem to have any errors in the log though:

----------------------
User UID: 99
User GID: 100
----------------------
Using existing properties file.
Using existing MySQL extension.
No permissions changes needed.
2023-04-09 17:36:33,667 INFO Set uid to user 0 succeeded
2023-04-09 17:36:33,670 INFO supervisord started with pid 16
2023-04-09 17:36:34,674 INFO spawned: 'guacd' with pid 17
2023-04-09 17:36:34,677 INFO spawned: 'tomcat' with pid 18
guacd[17]: INFO:        Guacamole proxy daemon (guacd) version 1.5.0 started
guacd[17]: INFO:        Listening on host 0.0.0.0, port 4822
2023-04-09 17:36:35,703 INFO success: guacd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2023-04-09 17:36:35,704 INFO success: tomcat entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

 

Is it still the MariaDB error highlighted on the front page? If so, what repository should I use when trying to downgrade? I don't seem to use the same one as bombz. I use jasonbean/guacamole:latest-nomariadb

 

Any help is much appreciated

Link to comment
On 4/10/2023 at 2:25 AM, Taddeusz said:

@Hugh Jazz You should look at the tomcat log, catalina.out file.

is there anything in particular you need from the log, or should i just paste the whole thing? it seems to contain username and ip's, which i rather not paste :S

 

also, jasonbean/guacamole:1.4.0-3 seems to work, but not jasonbean/guacamole:latest-nomariadb or 1.5.1-rc1

Link to comment
2 minutes ago, Hugh Jazz said:

is there anything in particular you need from the log, or should i just paste the whole thing? it seems to contain username and ip's, which i rather not paste :S

 

also, jasonbean/guacamole:1.4.0-3 seems to work, but not jasonbean/guacamole:latest-nomariadb or 1.5.1-rc1

If it's not easy to scrub the information you may DM it to me if you're more comfortable with that. The whole file would be more helpful since it's not always obvious where the error is occurring.

  • Like 1
Link to comment
11 minutes ago, Taddeusz said:

Is it before or after you're logging in? From the log file it appears authentication is successful. I don't see any obvious problems. This is a log from 1.5.0 right?

Before. I never reach the login page. It doesn't seem to create different log files depending on which version i'm on, and I've been jumping back and forth between them. But now I use jasonbean/guacamole:latest-nomariadb repository and tried to access, so maybe the log is updated now? :S There is also a catalina.2023-04-11.log file. I can send you that as well

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.