fusioAuth install is damaged?



  • I am typing localhost:9011 but i get this error:

    http://localhost:9011/maintenance-mode-silent-configuration-failed

    Does this mean that my local FA install is damaged? How can I check this?



  • @richb201 ,

    Hmmm. Not sure. Are there any logs which you can sure?

    Here's more about silent mode: https://fusionauth.io/docs/v1/tech/guides/silent-mode/



  • Thanks Dan. The article was very helpful. Where can I find the configuration file that it discusses? I am using the docker version of FA.



  • @richb201 with docker you can use environment variables to configure FA: https://fusionauth.io/docs/v1/tech/reference/configuration/

    For example (from docker-compose config):
    FUSIONAUTH_APP_RUNTIME-MODE: development
    FUSIONAUTH_APP_SILENT-MODE: "true"



  • @maciej-wisniowski
    I included the two lines that you suggested. I changed this:

    FUSIONAUTH_APP_SILENT-MODE: "false"

    But it seems to still want to go into silent mode. I am going to copy the fa part of my docker-compose below the error so you can tell me anything else you see that could be the issue.

    thx

    ---------------------------------- Entering Silent Configuration Mode -----------------------------------
    ---------------------------------------------------------------------------------------------------------
    
    2021-02-20 6:00:40.728 AM ERROR com.inversoft.maintenance.db.JDBCURL - Could not parse jdbcString [jdbc:mysql://database-2.cwymdn16cxes.us-east-1.rds.amazonaws.com/fusionauthdb]
    2021-02-20 6:00:40.731 AM ERROR com.inversoft.maintenance.db.DatabaseSilentConfigurationWorkflowTask - Encountered an error while running silent mode
    

    docker-compose.yml

    
      fusionauth:
        container_name: fusionauth-app
        build : 
          context: ./fusionAuth
          dockerfile: Dockerfile
        environment:
          DATABASE_URL: jdbc:mysql://database-2.cwymdn16cxes.us-east-1.rds.amazonaws.com/fusionauthdb
          DATABASE_ROOT_USER: ${DATABASE_ROOT_USER} # Enter here the Database username for connection
          DATABASE_ROOT_PASSWORD: ${DATABASE_PASSWORD}
          # Prior to version 1.19.0, use this deprecated name
          # DATABASE_USER: ${DATABASE_USER}
          DATABASE_USERNAME: ${DATABASE_USER}
          DATABASE_PASSWORD: ${DATABASE_PASSWORD}
          # Prior to version 1.19.0, use this deprecated names
          # FUSIONAUTH_MEMORY: ${FUSIONAUTH_MEMORY}
          # FUSIONAUTH_SEARCH_ENGINE_TYPE: database
          # FUSIONAUTH_URL: http://fusionauth:9011
          # FUSIONAUTH_RUNTIME_MODE: development
          FUSIONAUTH_APP_MEMORY: ${FUSIONAUTH_MEMORY}
          FUSIONAUTH_APP_RUNTIME_MODE: development
          FUSIONAUTH_APP_URL: http://fusionauth:9011
          FUSIONAUTH_APP_SILENT-MODE: "false"
          SEARCH_TYPE: database
        networks:
         - net
        restart: unless-stopped
        ports:
          - 9011:9011
        volumes:
          - fa_config:/usr/local/fusionauth/config
    


  • Ah.. seems I've made a typo, please try with all underscores in FUSIONAUTH_APP_SILENT_MODE (instead of FUSIONAUTH_APP_SILENT-MODE).



  • @maciej-wisniowski Thanks. That seems to work now! At least the error in my docker log went away. Now to test....



  • @richb201 said in fusioAuth install is damaged?:

    FUSIONAUTH_APP_SILENT-MODE: "false"

    I found that I am getting a message from the mysql (this is RDS) that I have reached my limit on errors. Something had changed in my docker-compose.yml. The only way to get to reset the error count was to reboot the mysql server and use my "back in time". I restored numerous days in the past (back to Feb 19th) and now things appear stable again. Seems to be a bug in the fa image? I am using 1.19.7. I will post the current errors up to the github site and see if anyone knows anything. Here they are just for giggles:

    2021-02-23 6:23:49.866 AM INFO  com.inversoft.maintenance.MaintenanceModePoller - Poller started to Wait for configuration to be completed.
    23-Feb-2021 06:23:49.889 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-9011"]
    23-Feb-2021 06:23:49.897 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["https-jsse-nio-9013"]
    23-Feb-2021 06:23:49.898 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-127.0.0.1-9019"]
    23-Feb-2021 06:23:49.899 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 3295 ms
    2021-02-23 6:23:54.907 AM ERROR com.inversoft.maintenance.db.JDBCURL - Could not parse jdbcString [jdbc:mysql:database-2.cwymdn16cxes.us-east-1.rds.amazonaws.com]
    2021-02-23 6:23:54.908 AM ERROR com.inversoft.maintenance.db.JDBCMaintenanceModeDatabaseService - Configuration [database.url] is invalid. It must begin with either jdbc:mysql: or jdbc:postgresql:
    2021-02-23 6:23:54.927 AM ERROR com.inversoft.maintenance.db.JDBCURL - Could not parse jdbcString [jdbc:mysql:database-2.cwymdn16cxes.us-east-1.rds.amazonaws.com]
    2021-02-23 6:23:54.928 AM ERROR com.inversoft.maintenance.db.JDBCMaintenanceModeDatabaseService - Configuration [database.url] is invalid. It must begin with either jdbc:mysql: or jdbc:postgresql:
    2021-02-23 6:24:05.346 AM ERROR com.inversoft.maintenance.db.JDBCURL - Could not parse jdbcString [jdbc:mysql:database-2.cwymdn16cxes.us-east-1.rds.amazonaws.com]
    2021-02-23 6:24:05.347 AM ERROR com.inversoft.maintenance.db.JDBCMaintenanceModeDatabaseService - Configuration [database.url] is invalid. It must begin with either jdbc:mysql: or jdbc:postgresql:
    2021-02-23 6:24:05.359 AM ERROR com.inversoft.maintenance.db.JDBCURL - Could not parse jdbcString [jdbc:mysql:database-2.cwymdn16cxes.us-east-1.rds.amazonaws.com]
    2021-02-23 6:24:05.359 AM ERROR com.inversoft.maintenance.db.JDBCMaintenanceModeDatabaseService - Configuration [database.url] is invalid. It must begin with either jdbc:mysql: or jdbc:postgresql:
    2021-02-23 6:24:16.748 AM ERROR com.inversoft.maintenance.db.JDBCURL - Could not parse jdbcString [jdbc:mysql:database-2.cwymdn16cxes.us-east-1.rds.amazonaws.com]
    2021-02-23 6:24:16.748 AM ERROR com.inversoft.maintenance.db.JDBCMaintenanceModeDatabaseService - Configuration [database.url] is invalid. It must begin with either jdbc:mysql: or jdbc:postgresql:
    2021-02-23 6:24:16.762 AM ERROR com.inversoft.maintenance.db.JDBCURL - Could not parse jdbcString [jdbc:mysql:database-2.cwymdn16cxes.us-east-1.rds.amazonaws.com]
    2021-02-23 6:24:16.763 AM ERROR com.inversoft.maintenance.db.JDBCMaintenanceModeDatabaseService - Configuration [database.url] is invalid. It must begin with either jdbc:mysql: or jdbc:postgresql:
    2021-02-23 6:24:24.892 AM ERROR com.inversoft.maintenance.db.JDBCURL - Could not parse jdbcString [jdbc:mysql:database-2.cwymdn16cxes.us-east-1.rds.amazonaws.com]
    2021-02-23 6:24:24.893 AM ERROR com.inversoft.maintenance.db.JDBCMaintenanceModeDatabaseService - Configuration [database.url] is invalid. It must begin with either jdbc:mysql: or jdbc:postgresql:
    2021-02-23 6:24:24.901 AM ERROR com.inversoft.maintenance.db.JDBCURL - Could not parse jdbcString [jdbc:mysql:database-2.cwymdn16cxes.us-east-1.rds.amazonaws.com]
    2021-02-23 6:24:24.901 AM ERROR com.inversoft.maintenance.db.JDBCMaintenanceModeDatabaseService - Configuration [database.url] is invalid. It must begin with either jdbc:mysql: or jdbc:postgresql:
    
    


  • @richb201 said in fusioAuth install is damaged?:

    jdbc:mysql://database-2.cwymdn16cxes.us-east-1.rds.amazonaws.com/fusionauthdb

    You need to specify the port on the JDBC string. Try this jdbc:mysql://database-2.cwymdn16cxes.us-east-1.rds.amazonaws.com:3306/fusionauthdb.



  • Thanks Dan. Interestingly, now when i type localhost:9011, I am getting the attached browser window at http://localhost:9011/maintenance-mode-database-configuration. BTW, I have no idea why it is now almost working. Screenshot from 2021-02-24 06-03-08.png

    I am assuming that maint mode is running because fa can;'t connect to my rds mysql.

    Into tyhe main mode input screen, now I see a field for port and one for database.

    I tried pasting what you gave me,
    jdbc:mysql://database-2.cwymdn16cxes.us-east-1.rds.amazonaws.com:3306/fusionauthdb

    but now I get

    Screenshot from 2021-02-24 06-08-16.png

    Then I tried
    URL: jdbc:mysql:database-2.cwymdn16cxes.us-east-1.rds.amazonaws.com
    Port:3306
    databse: fusionauthdb
    TLS enabled : no

    I still get the error 500.



  • @robotdan and Dan I did add the port and the errors in the docker log seems to have gone away. But this causes the following error in the browser. To get around this I need to reboot the rds

    A PHP Error was encountered
    Severity: Warning

    Message: mysqli::real_connect(): (HY000/1129): Host '73.188.125.114' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

    Filename: mysqli/mysqli_driver.php

    Line Number: 203

    Backtrace:

    File: /app/application/core/MY_Loader.php
    Line: 277
    Function: database

    File: /app/application/controllers/Configure.php
    Line: 29
    Function: __construct

    File: /app/index.php
    Line: 325
    Function: require_once

    A Database Error Occurred
    Unable to connect to your database server using the provided settings.

    Filename: controllers/Configure.php

    Line Number: 29

    P.S. I went back to the original connection string and it seems to 1) not get the "is blocked" error above 2) gets the error below in the docker log (this is just a small sampling of it) 3) allows me to connect to http://localhost:9011/maintenance-mode-database-configuration, OK, although I can't figure out what to enter in the maint mode Database Type section.

    2021-02-24 11:00:19.765 AM ERROR com.inversoft.maintenance.db.JDBCMaintenanceModeDatabaseService - Configuration [database.url] is invalid. It must begin with either jdbc:mysql: or jdbc:postgresql:
    2021-02-24 11:00:19.771 AM ERROR com.inversoft.maintenance.db.JDBCURL - Could not parse jdbcString [jdbc:mysql:database-2.cwymdn16cxes.us-east-1.rds.amazonaws.com]
    2021-02-24 11:00:19.771 AM ERROR com.inversoft.maintenance.db.JDBCMaintenanceModeDatabaseService - Configuration [database.url] is invalid. It must begin with either jdbc:mysql: or jdbc:postgresql:
    2021-02-24 11:00:29.763 AM ERROR com.inversoft.maintenance.db.JDBCURL - Could not parse jdbcString [jdbc:mysql:database-2.cwymdn16cxes.us-east-1.rds.amazonaws.com]



  • @robotdan said in fusioAuth install is damaged?:

    jdbc:mysql://database-2.cwymdn16cxes.us-east-1.rds.amazonaws.com:3306/fusionauthdb

    You don't want to paste in the full JDBC string into the UI, it has separate fields for host, database and port.

    This string jdbc:mysql://database-2.cwymdn16cxes.us-east-1.rds.amazonaws.com:3306/fusionauthdb could be used in a Docker configuration or directly in the fusionauth.properties file. This JDBC string is constructed as schema:database _type://host:port/database.

    If you are using Maintenance Mode, then you will need to use the appropriate parts of this string to fill in the fields.

    If you are entering maintenance mode it is because FusionAuth cannot connect to the database as configured, the console messages will describe why it cannot connect, and once you configure the field values in the UI it will tell you if it cannot connect.



  • @robotdan said in fusioAuth install is damaged?:

    mysql://database-2.cwymdn16cxes.us-east-1.rds.amazonaws.com

    I hate to be a pain. Here are the fields from the maint mode.
    Screenshot from 2021-02-24 16-18-06.png

    and here is the resulting screen:

    Screenshot from 2021-02-24 16-19-47.png

    did I follow your description of the fields correctly?



  • Seems you have a typo in the environment variable name. Instead of DATABASE_ROOT_USER it should be DATABASE_ROOT_USERNAME. Maybe this will resolve the problem.

    I have a docker-compose that uses local image of postgresql. For the reference I'm pasting my config below (there are some minor differences in the real version but these should not be relevant):

    fusion_db:
        image: postgres:9.6
        environment:
          PGDATA: /var/lib/postgresql/data/pgdata
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: some.password
        networks:
          - fusion_db
        restart: unless-stopped
        ports:
          - 5432:5432
        volumes:
          - fusion_db_data:/var/lib/postgresql/data
    
      fusionauth:
        image: fusionauth/fusionauth-app:1.24.0
        depends_on:
          - fusion_db
          - elasticsearch
        environment:
          DATABASE_URL: jdbc:postgresql://fusion_db:5432/fusionauth
          DATABASE_ROOT_USERNAME: postgres
          DATABASE_ROOT_PASSWORD: some.password
          DATABASE_USERNAME: fusionauth
          DATABASE_PASSWORD: some.password
          FUSIONAUTH_APP_MEMORY: 256M
          SEARCH_TYPE: elasticsearch
          FUSIONAUTH_APP_RUNTIME_MODE: development
          FUSIONAUTH_APP_SILENT_MODE: "true"
          SEARCH_SERVERS: http://elasticsearch:9200
          FUSIONAUTH_APP_URL: https://auth.mylocal.domain
          FUSIONAUTH_APP_KICKSTART_FILE: docker-fusionauth-kickstart/kickstart.json
        networks:
          - fusion_db
          - fusion_search
          - default
        restart: unless-stopped
        ports:
          - 9011:9011
        volumes:
          - fusion_fa_config:/usr/local/fusionauth/config
          - ./docker-fusionauth-kickstart:/docker-fusionauth-kickstart
    
    volumes:
      fusion_db_data:
      fusion_fa_config:
      (...)
    


  • @maciej-wisniowski Thanks. I took care of that but I still get this error over and over again in the docker log.

    2021-02-25 11:59:30.438 AM ERROR com.inversoft.maintenance.db.JDBCMaintenanceModeDatabaseService - Configuration [database.url] is invalid. It must begin with either jdbc:mysql: or jdbc:postgresql:

    Here is part of the docker-compose:

    environment:
    DATABASE_URL: jdbc:mysql://database-2.cwymdn16cxes.us-east-1.rds.amazonaws.com/fusionauthdb
    DATABASE_ROOT_USERNAME: ${DATABASE_ROOT_USERNAME} # Enter here the Database username for connection
    DATABASE_ROOT_PASSWORD: ${DATABASE_PASSWORD}
    # Prior to version 1.19.0, use this deprecated name
    # DATABASE_USER: ${DATABASE_USER}
    DATABASE_USERNAME: ${DATABASE_USERNAME}
    DATABASE_PASSWORD: ${DATABASE_PASSWORD}
    # Prior to version 1.19.0, use this deprecated names
    # FUSIONAUTH_MEMORY: ${FUSIONAUTH_MEMORY}
    # FUSIONAUTH_SEARCH_ENGINE_TYPE: database
    # FUSIONAUTH_URL: http://fusionauth:9011
    # FUSIONAUTH_RUNTIME_MODE: development
    FUSIONAUTH_APP_MEMORY: ${FUSIONAUTH_MEMORY}
    FUSIONAUTH_APP_RUNTIME_MODE: development
    FUSIONAUTH_APP_URL: http://fusionauth:9011
    SEARCH_TYPE: database
    FUSIONAUTH_APP_SILENT_MODE: "false"



  • Have you tried with original docker image instead of building FA by yourself? Seems (from the first post) that you have some customized dockerfile/image for fusionauth so maybe there is an issue

    fusionauth:
      container_name: fusionauth-app
      build : 
        context: ./fusionAuth
        dockerfile: Dockerfile
    


  • @maciej-wisniowski Thanks. I'll ask the guy who rebuilt it why he did that?

    One more question. I have a copy of FA running on Ec2 that is able to talk to the RDS mysql fine. How can I see, from the UI, what the connection string being used is?



  • @richb201 said in fusioAuth install is damaged?:

    DATABASE_URL: jdbc:mysql://database-2.cwymdn16cxes.us-east-1.rds.amazonaws.com/fusionauthdb

    You are still missing the port in this string (as I mentioned above).

    DATABASE_URL: jdbc:mysql://database-2.cwymdn16cxes.us-east-1.rds.amazonaws.com:3306/fusionauthdb.

    You cannot view the connection string from the UI at runtime.



  • @robotdan Dan, putting that port in causes the RDS server to time out. It is repeatable. Is there some other way to see what the connection string is set to on the EC2? Perhaps there is a config file? I do have filezilla attached to that server.



  • @richb201 have you tried to connect to this RDS database using any other MySQL client from the same machine? Maybe there is some firewall or permissions issue with RDS


Log in to reply
 

Looks like your connection to FusionAuth Forum was lost, please wait while we try to reconnect.