Errors recording user activity

Certified Lead Developer

I am trying to install 18.3 HF B on some Linux boxes, but I am receiving the following errors in the Tomcat output:

INFO [ajp-nio-8009-exec-6] org.apache.catalina.core.StandardWrapperValve.invoke 2018-10-10 17:54:43,931 [ajp-nio-8009-exec-6] WARN  com.appiancorp.security.auth.activity.UserActivityFilter - Could not record user activity: secCtx=<USERNAME REDACTED>, authDetails=AuthenticationDetails[ts=2018-10-10 17:54:42.417, entryPoint=PORTAL, clientIpAddress=<IP ADDRESS REDACTED>, clientUserAgent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36] -- java.lang.NullPointerException

These errors are thrown every time a user clicks around, and user activity is not logged to be viewed in the admin console.

We are seeing these issues on multiple instances, both on-premise and AWS instances. Port 9300 has been added to the firewall rules for the on-premise installs, and the AWS security group is currently allowing all traffic in and out, so I don't believe it is a port issue. It is not a distributed environment. This issue is happening on both vanilla installs and migrated installs.

 

/etc/hosts:

127.0.0.1 localhost

<INTERNAL IP> <INTERNAL HOSTNAME>

 

I do see 9300 open and listening on 0.0.0.0:* when running netstat -plnt

The java process for search server is being run as the same user that installed and is running appian.

I am using the standard appian-topology, and even tried changing it to add the host and port to the search-server tag instead of the search-cluster tag.

For the migrated environment, I deleted search-local before starting up SS and Tomcat.

 

I am honestly at a loss, and not sure what I should try next. Has anyone else had this issue?

  Discussion posts and replies are publicly visible

  • 0
    Certified Lead Developer

    I am pretty sure I have narrowed it down to an Apache issue, as I bypassed the Web Server (used port 8080 and set custom.properties to http and that port) and everything worked fine. I am currently using Apache 2.4 and mod_jk 1.2.43. I did not make any changes to httpd.conf, instead I used the following files:

    appian.conf (main config for all environments accessed from this Apache server):

    ServerSignature Off
    ServerTokens Prod
    
    JkWorkersFile conf/worker.properties
    JkLogFile logs/mod_jk.log
    JkLogLevel info
    JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
    
    JkExtractSSL On
    JkHTTPSIndicator HTTPS
    JkSESSIONIndicator SSL_SESSION_ID
    JkCIPHERIndicator SSL_CIPHER
    JkCERTSIndicator SSL_CLIENT_CERT
    JkMountCopy All
    
    LoadModule jk_module modules/mod_jk.so
    
    SSLRandomSeed startup builtin
    SSLRandomSeed connect builtin
    SSLSessionCache shmcb:/tmp/ssl_gcache_data(512000)
    
    SSLCertificateFile /etc/httpd/ssl/ssl_certificate.crt
    SSLCertificateKeyFile /etc/httpd/ssl/private.key
    SSLCertificateChainFile /etc/httpd/ssl/IntermediateCA.crt
     

    demo.conf (config for single environment):

    <VirtualHost *:80>
       ServerName <URL REDACTED>
       Redirect / <URL REDACTED>
    </VirtualHost>
    
    <VirtualHost *:443>
    	SSLEngine On
    	ServerName <URL REDACTED>
    
    	JkStripSession On
    	JkMount /suite/*.bg nodeDemo
    
    	DirectoryIndex suite
    	
    	<Location /suite/>
    		SetHandler jakarta-servlet
    		SetEnv JK_WORKER_NAME nodeDemo
    		SetEnvIf REQUEST_URI "\.css$" no-jk
    		SetEnvIf REQUEST_URI "\.jpg$" no-jk
    		SetEnvIf REQUEST_URI "\.js$" no-jk
    		SetEnvIf REQUEST_URI "\.html$" no-jk
    		SetEnvIf REQUEST_URI "\.png$" no-jk
    		SetEnvIf REQUEST_URI "\.xml$" no-jk
    		SetEnvIf REQUEST_URI "\.ico$" no-jk
    		SetEnvIf REQUEST_URI "\.xsl$" no-jk
    		SetEnvIf REQUEST_URI "\.gwt\.rpc$" no-jk
    		SetEnvIf REQUEST_URI "\.svg$" no-jk
    		SetEnvIf REQUEST_URI "\.htc$" no-jk
    		SetEnvIf REQUEST_URI "\.otf$" no-jk
    		# If the nosniff setting for the X-Content-Type-Options response
    		# header is used, omit the SetEnvIf line for .gif extenstions.
    		SetEnvIf REQUEST_URI "\.gif$" no-jk
    
    		SetEnvIf REQUEST_URI "/suite/s/" !no-jk
    		SetEnvIf REQUEST_URI "/suite/plugins/servlet" !no-jk
    	</Location>
    
    	<Location /extras/>
    		SetHandler jakarta-servlet
    		SetEnv JK_WORKER_NAME nodeDemo
    	</Location>
    	
    	Alias /suite "/var/www/static-content/Appian183B/web.war"
    
    	<Directory "/var/www/static-content/Appian183B/web.war">
    		AllowOverride FileInfo
    		Options All
    		AllowOverride All
    		Require all granted
    	</Directory>
    	
    </VirtualHost>

    worker.properties:

    worker.list=nodeDev,nodeTest,nodeDemo
    
    worker.nodeDev.host=<INTERNAL IP REDACTED>
    worker.nodeDev.port=8009
    worker.nodeDev.type=ajp13
    worker.nodeDev.socket_connect_timeout=5000
    worker.nodeDev.sticky_session=1
    
    worker.nodeTest.host=<INTERNAL IP REDACTED>
    worker.nodeTest.port=8009
    worker.nodeTest.type=ajp13
    worker.nodeTest.socket_connect_timeout=5000
    worker.nodeTest.sticky_session=1
    
    worker.nodeDemo.host=<INTERNAL IP REDACTED>
    worker.nodeDemo.port=8009
    worker.nodeDemo.type=ajp13
    worker.nodeDemo.socket_connect_timeout=5000
    worker.nodeDemo.sticky_session=1

    Any thoughts?

  • +1
    Certified Lead Developer
    in reply to brettr
    Well, looks like I figured this one out, and it was an Apache issue. It looks like I may have had an old version of mod_jk. I thought I had 1.2.43, but I am not 100% sure. I downloaded 1.2.42 (per documentation example) and built that version. Everything started working just fine and the issue has been resolved!