[mythtv-users] Mythzmserver DB problems. Was: doesn't start:...

A. F. Cano afc54 at comcast.net
Wed Apr 28 02:58:50 UTC 2021


On Wed, Apr 28, 2021 at 12:00:38AM +0100, Paul Harrison wrote:
> ...
> 
> Ah! I forgot you are running MythTV 30.0 which is missing some fixes. It's
> difficult to keep track of all the changes in MythTV and Zoneminder and what
> is compatible with what at least that's my excuse :)
> 
> Only current master looks in /etc/zm/conf.d/01-system-paths.conf for the
> ZM_PATH_MAP setting. Older versions only look in /etc/zm.conf or the
> location you tell it to load the config from when you pass a -c command line
> parameter to mythzmserver.
> 
> 
> You will have to either copy the ZM_PATH_MAP setting to /etc/zm/zm.conf or
> you could create a custom copy of /etc/zm/zm.conf specifically for
> mythzmserver to use and add the ZM_PATH_MAP setting then tell mythzmserver
> to use your custom zm.conf file using the -c parameter.

Ok, added:

ZM_PATH_MAP=/dev/shm
ZM_VERSION=1.32.3

to the end of /etc/zm/zm.conf but I still get this non-stop when in
"Show Live View":

2021-04-27 21:58:43.779205 E  The server failed to process the command. The error was:- 
                        ERROR - Cannot get shared memory pointers

and I get the test pattern on the frontend.

Of interest regarding shared memory, mythzmserver gives this:

getZMSetting: ZM_SHM_KEY Result: 0x7a6d0000
Shared memory key is: 0x7a6d0000
Failed to get mysql row
getZMSetting: ZM_PATH_MAP Result: 
Memory path directory is:

It is strange that it finds a ZM_SHM_KEY but then the "ZM_PATH_MAP
Result:" is empty, and the "Memory path directory is:" is also empty.

And then:

Failed to open mmap file [/zm.mmap.2] for monitor: 2 : No such file or directory
Falling back to the legacy shared memory method
Failed to shmget for monitor: 2
ENOENT - no segment exists for the given key

So it looks like even though it has a shared memory key and the
ZM_PATH_MAP=/dev/shm parameter is in /etc/zm/zm.conf it is still not
finding the file and reverting to "the legacy shared memory method".
It certainly looks like mythzmserver is ignoring the ZM_PATH_MAP
variable.  Is it using the "legacy ahared memory method" and that is
what is causing the memory pointer errors?

The complete log is below:

# mythzmserver -v -c /etc/zm/zm.conf
loading zm config from /etc/zm/zm.conf
ZM is version '1.32.3'
Listening on port: 6548
Using server protocol version '11'
getZMSetting: ZM_SHM_KEY Result: 0x7a6d0000
Shared memory key is: 0x7a6d0000
Failed to get mysql row
getZMSetting: ZM_PATH_MAP Result: 
Memory path directory is: 
getZMSetting: ZM_EVENT_IMAGE_DIGITS Result: 5
Event file format is: %05d-capture.jpg
Analysis file format is: %05d-analyse.jpg
getZMSetting: ZM_USE_DEEP_STORAGE Result: 1
using deep storage directory structure
getZMSetting: ZM_CREATE_ANALYSIS_IMAGES Result: 1
using analysis images
Got 1 monitors
Failed to open mmap file [/zm.mmap.2] for monitor: 2 : No such file or directory
Falling back to the legacy shared memory method
Failed to shmget for monitor: 2
ENOENT - no segment exists for the given key
new connection from 127.0.0.1 on socket 5
Processing: 'HELLO'
Processing: 'GET_MONITOR_LIST'
We have 1 monitors
id:             2
name:           Desk-C600
width:          1280
height:         720
palette:        0
byte per pixel: 4
sub pixel order:2
-------------------
Processing: 'GET_ALARM_STATES'
Processing: 'GET_ALARM_STATES'
Processing: 'GET_ALARM_STATES'
Processing: 'GET_ALARM_STATES'
Processing: 'GET_ALARM_STATES'
Processing: 'GET_ALARM_STATES'
Processing: 'GET_ALARM_STATES'
Processing: 'GET_ALARM_STATES'
Processing: 'GET_ALARM_STATES'
Processing: 'GET_SERVER_STATUS'
Processing: 'GET_MONITOR_STATUS'
Got 1 monitors
Processing: 'GET_ALARM_STATES'
Processing: 'GET_ALARM_STATES'
Processing: 'GET_ALARM_STATES'
Processing: 'GET_LIVE_FRAME'
Kicking database connection
Getting live frame from monitor: 2  # this is where I get into Live View
Processing: 'GET_LIVE_FRAME'
Getting live frame from monitor: 2
Processing: 'GET_LIVE_FRAME'
Getting live frame from monitor: 2
Processing: 'GET_LIVE_FRAME'
Getting live frame from monitor: 2
Processing: 'GET_LIVE_FRAME'
Getting live frame from monitor: 2
Processing: 'GET_LIVE_FRAME'
Getting live frame from monitor: 2
Processing: 'GET_LIVE_FRAME'
Getting live frame from monitor: 2
Processing: 'GET_LIVE_FRAME'
Getting live frame from monitor: 2
Processing: 'GET_LIVE_FRAME'
Getting live frame from monitor: 2
Processing: 'GET_LIVE_FRAME'
Getting live frame from monitor: 2
Processing: 'GET_ALARM_STATES'
Processing: 'GET_LIVE_FRAME'
Getting live frame from monitor: 2
Processing: 'GET_LIVE_FRAME'
Getting live frame from monitor: 2
Processing: 'GET_LIVE_FRAME'
Getting live frame from monitor: 2
Processing: 'GET_LIVE_FRAME'
Getting live frame from monitor: 2
Processing: 'GET_LIVE_FRAME'
Getting live frame from monitor: 2
Processing: 'GET_LIVE_FRAME'
Getting live frame from monitor: 2
Processing: 'GET_LIVE_FRAME'
Getting live frame from monitor: 2
Processing: 'GET_LIVE_FRAME'
Getting live frame from monitor: 2
Processing: 'GET_LIVE_FRAME'
Getting live frame from monitor: 2
Processing: 'GET_LIVE_FRAME'
Getting live frame from monitor: 2
Processing: 'GET_ALARM_STATES'
Processing: 'GET_LIVE_FRAME'
Getting live frame from monitor: 2
Processing: 'GET_LIVE_FRAME'
...


More information about the mythtv-users mailing list