Centos 7 all in 1 installation, KDP3 Dark skin and HTML5 players not showing movie

Hello,

I performed a Kaltura all in 1 SSL installation according to the documentation:

My kaltura.repo is pointing to:

baseurl = http://installrepo.kaltura.org/releases/latest/$releasever/RPMS/$basearch/

I managed to create a publisher and upload a movie, unfortunately when i select “Preview&Embed” the movie is not playing for the KDP3 Dark skin and HTML5 players

The KDP3 Blue Skin and KDP3 Light Skin players are working

Runing

/opt/kaltura/bin/kaltura-sanity.sh

gives these errors and 60 mail messages (is there a way to reduce the number of mail messages from monit??)

[kaltura_logo_animated_blue.flv - 0_qpu0t8zc status] [FAILED, RC: 1] - [-.821669094]
Napping 30 seconds to allow mail to be sent out…
[Found an email sending entry for mb@kaltura.com[PID is 102] in /var/log/maillog] [PASSED, RC: 0] - [30.018030952]
Testing analytics, be patient…

Please note: if you are running this test on a clustered ENV, it will fail but this does not mean there is an actual problem.
The tech information as to why is available here:

[DWH cycle] [FAILED, RC: 255] - [12.584665541]

I should add that I dond have kaltura-red5 installed

I appreciate any help to get the HTML5 player working

Regards
Alex Contis

Hi @alex.contis_1,

Red5 is not required for anything and is most certainly not the cause:)

To understand the root cause for the failure, in a root shell on the server, run:

# . /etc/profile.d/kaltura*base.sh
# kaltlog

Then make the request and look at the errors being outputted. Once you have these, open the relevant log [most probably /opt/kaltura/log/kaltura_api_v3.log] locate the final error and trace back. Paste the stack trace here.
In parallel, also open the dev tools in your browser and look at the errors under the console and network tabs. Once you have the error, we can take it from there.

Due to timing issues, the DWH test has a tendency to fail even when everything is working properly so we can put that aside for now and see if, after everything is in order and you have triggered events from outside of KMC [as in people loading the player and playing the video from various embed pages], you get the analytics, if not, we can deal with it then.

From you kaltura-sanity.sh output, I see the upload test also failed and yet, you say you are able to upload media files when using the KMC?

Hello.

I did run kaltlog and tried to play a movie in the “Preview&Embed” window while selectin KDC3Dark skin or HTML5 player.

Firefox debugger showed me the message “Style sheet could not be loaded”

Kaltlog generated:

==> /opt/kaltura/log/kaltura_apache_errors_ssl.log <==
[Fri Dec 15 22:22:51.999369 2017] [:error] [pid 11713] [client 81.170.234.46:54100] PHP Notice: curl_setopt(): CURLOPT_SSL_VERIFYHOST no longer accepts the value 1, value 2 will be used instead in /opt/kaltura/app/infra/general/KCurlWrapper.class.php on line 228, referer: https://kaltura.myserver.nu/index.php/extwidget/preview/partner_id/101/uiconf_id/23448170/entry_id/0_lr6r4lwu/embed/auto?&flashvars[streamerType]=auto&flashvars[ks]=ZDAxYjNhYjQ4YWU0M2FjMjIxODA1NGFhODBkZDU3NGE4MzJkYTNkY3wxMDE7MTAxOzE1MTM0NTc2Mzk7MjsxNTEzMzcxMjM5LjI4NzI7c3VwcG9ydEBuZXRzYXBpZW5zaXMuc2U7KixkaXNhYmxlZW50aXRsZW1lbnQ7Ow%3D%3D&flashvars[liveAnalytics]={"plugin"%3A"false"%2C"relativeTo"%3A"PlayerHolder"%2C"position"%3A"after"%2C"loadingPolicy"%3A"onDemand"}&framed=true


#3 {main}
2017-12-15 22:38:23 [0.000614] [81.170.234.46] [18915640] [5] [API] [KalturaFrontController->getExceptionObject] ERR: exception ‘KalturaAPIException’ with message ‘Action “trackevent” does not exists for service “analytics”’ in /opt/kaltura/app/api_v3/lib/KalturaDispatcher.php:58
Stack trace:
#0 /opt/kaltura/app/api_v3/lib/KalturaFrontController.php(113): KalturaDispatcher->dispatch(‘analytics’, ‘trackEvent’, Array)

==> /opt/kaltura/log/batch/clearcuepoints-0-2017-12-15.err.log <==
PHP Fatal error: Uncaught exception ‘KalturaException’ with message ‘Internal server error occurred’ in /opt/kaltura/app/batch/client/KalturaClientBase.php:894
Stack trace:
#0 /opt/kaltura/app/batch/client/KalturaClient.php(4304): KalturaClientBase->throwExceptionIfError(Array)

==> /opt/kaltura/log/batch/convertprofilecloser-0-2017-12-14.err.log <==
PHP Fatal error: Uncaught exception ‘KalturaClientException’ with message ‘failed to unserialize server result
’ in /opt/kaltura/app/batch/client/KalturaClientBase.php:401
Stack trace:
#0 /opt/kaltura/app/batch/client/KalturaClient.php(1163): KalturaClientBase->doQueue()

==> /opt/kaltura/log/batch/extractmedia-0-2017-12-14.err.log <==
PHP Notice: Trying to get property of non-object in /opt/kaltura/app/infra/media/mediaInfoParser/KMediaFileComplexity.php on line 282
PHP Notice: Trying to get property of non-object in /opt/kaltura/app/infra/media/mediaInfoParser/KMediaFileComplexity.php on line 282
PHP Notice: Trying to get property of non-object in /opt/kaltura/app/infra/media/mediaInfoParser/KMediaFileComplexity.php on line 282
PHP Notice: Trying to get property of non-object in /opt/kaltura/app/infra/media/mediaInfoParser/KMediaFileComplexity.php on line 282
PHP Notice: Trying to get property of non-object in /opt/kaltura/app/infra/media/mediaInfoParser/KMediaFileComplexity.php on line 282
PHP Notice: Trying to get property of non-object in /opt/kaltura/app/infra/media/mediaInfoParser/KMediaFileComplexity.php on line 282
PHP Notice: Trying to get property of non-object in /opt/kaltura/app/infra/media/mediaInfoParser/KMediaFileComplexity.php on line 282
PHP Notice: Trying to get property of non-object in /opt/kaltura/app/infra/media/mediaInfoParser/KMediaFileComplexity.php on line 282
PHP Warning: Division by zero in /opt/kaltura/app/infra/media/mediaInfoParser/KMediaFileComplexity.php on line 282
PHP Warning: Creating default object from empty value in /opt/kaltura/app/infra/media/mediaInfoParser/KMediaFileComplexity.php on line 246


]
2017-12-15 22:38:30 [0.000643] [81.170.234.46] [513812870] [4] [API] [KalturaDispatcher->dispatch] CRIT: exception ‘Exception’ with message ‘Action does not exist!’ in /opt/kaltura/app/infra/log/KalturaLog.php:74
Stack trace:
#0 /opt/kaltura/app/api_v3/lib/KalturaDispatcher.php(57): KalturaLog::crit(‘Action does not…’)

#3 {main}
2017-12-15 22:38:30 [0.000509] [81.170.234.46] [513812870] [5] [API] [KalturaFrontController->getExceptionObject] ERR: exception ‘KalturaAPIException’ with message ‘Action “trackevent” does not exists for service “analytics”’ in /opt/kaltura/app/api_v3/lib/KalturaDispatcher.php:58
Stack trace:
#0 /opt/kaltura/app/api_v3/lib/KalturaFrontController.php(113): KalturaDispatcher->dispatch(‘analytics’, ‘trackEvent’, Array)

]
2017-12-15 22:38:31 [0.000544] [81.170.234.46] [1456187220] [4] [API] [KalturaDispatcher->dispatch] CRIT: exception ‘Exception’ with message ‘Action does not exist!’ in /opt/kaltura/app/infra/log/KalturaLog.php:74
Stack trace:
#0 /opt/kaltura/app/api_v3/lib/KalturaDispatcher.php(57): KalturaLog::crit(‘Action does not…’)

#3 {main}
2017-12-15 22:38:31 [0.000409] [81.170.234.46] [1456187220] [5] [API] [KalturaFrontController->getExceptionObject] ERR: exception ‘KalturaAPIException’ with message ‘Action “trackevent” does not exists for service “analytics”’ in /opt/kaltura/app/api_v3/lib/KalturaDispatcher.php:58
Stack trace:
#0 /opt/kaltura/app/api_v3/lib/KalturaFrontController.php(113): KalturaDispatcher->dispatch(‘analytics’, ‘trackEvent’, Array)

Thank you
Alex Contis

Hi @alex.contis_1,

Looks as though you’re using a self signed cert which is not advisable and will cause issues.
See my reply here:

Hello Jess,

You were right partly about the certificate. Though I entered the correct information for a valid certificate/key/chain these were ignored because there is already information about the snake-oil certificate/key in /etc/httpd/conf.d/ssl.conf

I managed to install a Non-SSL installation of Kaltura with working HTML5 player and nginx streaming

I attempted to reconfigure Kaltura for SSL by running:

/opt/kaltura/bin/kaltura-front-config.sh

Unfortunately it broke Kaltura and now after entering the correct credentials at the link for “Admin Your Platform Backend” I get the error message:

An error occurred
(error code: API:-1)

Running Kaltlog gives:

#0 /opt/kaltura/app/batch/client/KalturaClient.php(1380): KalturaClientBase->doQueue()

==> /opt/kaltura/log/batch/jobsuspender-0-2017-12-21.err.log <==
PHP Fatal error: Uncaught exception ‘KalturaClientException’ with message 'failed to unserialize server result

’ in /opt/kaltura/app/batch/client/KalturaClientBase.php:401
Stack trace:
#0 /opt/kaltura/app/batch/client/KalturaClient.php(1294): KalturaClientBase->doQueue()

==> /opt/kaltura/log/kaltura_admin.log <==
2017-12-21 22:16:38 [0.006191] [1868354534] [8] [%context%] [ErrorController->errorAction] ERR: exception ‘Kaltura_Client_ClientException’ with message ‘. RC : 400’ in /opt/kaltura/app/admin_console/lib/Kaltura/Client/ClientBase.php:923
Stack trace:
#0 /opt/kaltura/app/admin_console/lib/Kaltura/Client/ClientBase.php(249): Kaltura_Client_ClientBase->getKalturaClientException(’. RC : 400’, -1)

==> /opt/kaltura/log/batch/validatelivemediaservers-0-2017-12-21.err.log <==
PHP Fatal error: Uncaught exception ‘KalturaClientException’ with message 'failed to unserialize server result

’ in /opt/kaltura/app/batch/client/KalturaClientBase.php:401
Stack trace:
#0 /opt/kaltura/app/batch/client/KalturaClient.php(2315): KalturaClientBase->doQueue()

2017-12-21 22:16:48 [0.000153] [484711401] [9] [BATCH] [KScheduleHelper->run] ERR: exception ‘Exception’ with message ‘System is not yet ready - ping failed’ in /opt/kaltura/app/infra/log/KalturaLog.php:83
Stack trace:
#0 /opt/kaltura/app/batch/batches/KScheduleHelper.class.php(42): KalturaLog::err(‘System is not y…’)

Any hints on how to fix this?

Another way to make Kaltura use SSL is to use a load balancer and SSL-offloader, what would be the necessary steps to a working Non-SSL Kaltura installation to make it work with a load balancer?

Happy Holidays
Alex Contis

Hi @alex.contis_1,

What’s the output for:

# curl -I -v $SERVICE_URL

?

In regards to configuring SSL offloading, see:

Technically, any LB capable of sticky sessions should work just fine but we have template configuration files for HAProxy and the Apache proxy module.

Hello Jess,

$ curl -I -v https://kaltura.myserver.bla

shows:

  • Rebuilt URL to: https://kaltura.myserver.bla/
  • Trying x.y.z.q…
  • TCP_NODELAY set
  • Connected to kaltura.myserver.bla (x.y.z.q) port 443 (#0)
  • ALPN, offering http/1.1
  • Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
  • successfully set certificate verify locations:
  • CAfile: /etc/ssl/certs/ca-certificates.crt
    CApath: /etc/ssl/certs
  • TLSv1.2 (OUT), TLS header, Certificate Status (22):
  • TLSv1.2 (OUT), TLS handshake, Client hello (1):
  • TLSv1.2 (IN), TLS handshake, Server hello (2):
  • TLSv1.2 (IN), TLS handshake, Certificate (11):
  • TLSv1.2 (IN), TLS handshake, Server key exchange (12):
  • TLSv1.2 (IN), TLS handshake, Server finished (14):
  • TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
  • TLSv1.2 (OUT), TLS change cipher, Client hello (1):
  • TLSv1.2 (OUT), TLS handshake, Finished (20):
  • TLSv1.2 (IN), TLS change cipher, Client hello (1):
  • TLSv1.2 (IN), TLS handshake, Finished (20):
  • SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
  • ALPN, server did not agree to a protocol
  • Server certificate:
  • subject: OU=Domain Control Validated; CN=*.myserver.bla
  • start date: Mar 1 17:06:38 2016 GMT
  • expire date: Mar 1 17:06:38 2019 GMT
  • subjectAltName: host “kaltura.myserver.bla” matched cert’s “*.myserver.bla”
  • issuer: C=US; ST=Arizona; L=Scottsdale; O=GoDaddy.com, Inc.; OU=http://certs.godaddy.com/repository/; CN=Go Daddy Secure Certificate Authority - G2
  • SSL certificate verify ok.

HEAD / HTTP/1.1
Host: kaltura.myserver.bla
User-Agent: curl/7.55.1
Accept: /

< HTTP/1.1 302 Found
HTTP/1.1 302 Found
< Date: Mon, 01 Jan 2018 21:04:09 GMT
Date: Mon, 01 Jan 2018 21:04:09 GMT
< Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16
< Location: https://kaltura.myserver.bla/start/index.php
Location: https://kaltura.myserver.bla/start/index.php
< Content-Type: text/html; charset=iso-8859-1
Content-Type: text/html; charset=iso-8859-1

<

  • Connection #0 to host kaltura.myserver.bla left intact

and # apachectl -t -DDUMP_VHOSTS

shows

Passing arguments to httpd using apachectl is no longer supported.
You can only start/stop/restart httpd using this script.
If you want to pass extra arguments to httpd, edit the
/etc/sysconfig/httpd config file.
VirtualHost configuration:
x.y.z.q:* kaltura.myserver.bla (/etc/httpd/conf.d/zzzkaltura.ssl.conf:22)
*:443 kaltura.myserver.bla (/etc/httpd/conf.d/ssl.conf:56)

Hi @alex.contis_1,

The output for curl -I -v $SERVICE_URL seems fine. What happens when you add -L?
from the curl man page:

-L (HTTP/HTTPS) If the server reports that the requested page has moved to a different location (indicated with a Location: header and a 3XX response code), this option will make curl redo the request on the new place.

So that would make curl follow up and request https://kaltura.myserver.bla/start/index.php, this should return http 200.
Also, is the settings.serviceUrl in /opt/kaltura/app/configurations/admin.ini set correctly?
What about serviceUrl in /opt/kaltura/app/configurations/batch/batch.ini?
Also make sure the secret directive is set correctly and matches the value of:

# mysql -h$DB1_HOST -u $DB1_USER -p$DB1_PASS -P$DB1_PORT $DB1_NAME
mysql> select admin_secret from partner where id=-1;

Assuming everything is set correctly, run:

# curl -f "$SERVICE_URL/api_v3/index.php?service=system&action=ping"

A correct response should be:

HTTP/1.1 200 OK

and an XML similar to the below:

<?xml version="1.0" encoding="utf-8"?><xml><result>1</result><executionTime>0.033658981323242</executionTime></xml>

After confirming all of the above, try to log into the Admin Console while looking at the log here:
/opt/kaltura/log/kaltura_admin.log
and the API log here: /opt/kaltura/log/kaltura_api_v3.log

look for erroneous patterns with grep like so:
grep -A 1 -B 1 --color "ERR:\|PHP\|trace\|CRIT\|\[error\]"
and then run through the lines leading to the final error to understand what went wrong.