IPLM Cache Version 1.7
Release date: December 9, 2020
Enhancements
- [PIC-297] - [tools] job_purge.py updated to use new queue names
- [PIC-301] - [tools] Configure ipv_purge.py tool's timeout period
Added -t/--timeout CLI option to ipv_purge.pyc tool giving the number of seconds to wait for a remove job to finish, with a default of 10 seconds. - [PIC-320] - Delete locks, unregister with wdog on worker exceptions
- [PIC-337] - [round-robin] ipv_logger.py tool support for round-robin queuing
- [PIC-407] - Make IPLM Cache not fail on startup if redis-host and redis-sentinel-instances both uncommented
- [PIC-423] - Add comment correlating RQ Job ID and IPV name
Log messages now exist with the messages'ipv_namefield set to an IPV's name and thejobId_or_namefield set to the job ID for that IPV. - [PIC-425] - Support for SLES12 systemd service
- [PIC-431] - Set P4CLIENT and P4PORT environment variables before calling pre-build-hook and post-build-hook scripts
The picache.conf Configuration file page has been updated for the descriptions of thepre-build-hookandpost-build-hooksettings. - [PIC-434] - IPLM Cache Monitor tool
Thepicache-monitor.shtool now exists in IPLM Cache's tool directory, /usr/share/mdx/products/picache/bin. - [PIC-438] - Support for more than three Sentinel instances
The picache.conf Configuration file page has been updated for the description of theredis-sentinel-instancessetting. - [PIC-440] - MongoDB Server Selection Timeout value is now configurable
See the picache.conf Configuration file page for the description of the newmongod-server-selection-timeout-mssetting. - [PIC-455] - Cleanup Unused IPVs feature
See the picache.conf Configuration file page for the description of the settings used for the Cleanup Unused IPVs feature:ipv-cleanup,ipv-cleanup-days,pi-server, andpi-server-credentials-file.
Also see the IPLM Cache administration overview page, Cleaning up unused IPVs section, for a further discussion of the feature. - [PIC-460] - maintenance process period is now configurable
See the picache.conf Configuration file page for the description of the newmaintenance-period-hrssetting.
Also see the Data Consistency Checking page for a discussion on the use of themaintenance-period-hrssetting for the IPV Data Consistency Checking feature. - [PIC-488] - Removed user setting from IPLM Cache configuration file
The IPLM Cache configuration file, /etc/mdx/picache.conf, no longer has theusersetting. The picache.conf Configuration file page no longer has this setting.
Bugs
- [PIC-198] - Broken Pipe when Starting Back-End Workers
- [PIC-368] - Unresolved reference in class PICachedConfig.config_stunnel()
- [PIC-391] - IPLM Cache: ipv-umask does not work for project
- [PIC-402] - Correct logging so that only IPLM Cache backend PiCache:MainProcess logs into picache.log log file
- [PIC-403] - [Wdog] Correct logging of wdog into picache.log
- [PIC-415] - [tools] ipv_purge.py tool does not work for user_rr queuing
- [PIC-436] - [wdog] Ensure Watchdog sends heartbeat before its next expected heartbeat is due
- [PIC-441] - MongoDB client connection resource leak for user_rr
- [PIC-471] - IPV Cleanup remove job causes exception with user_rr queuing
- [PIC-476] - Prevent cascading number of check jobs
See the picache.conf Configuration file page for the description of the newmaintenance-job-wait-minsandmax-num-concurrent-check-jobssettings.
Also see the Data Consistency Checking page for a discussion on the use of these settings for the IPV Data Consistency Checking feature. - [PIC-482] - Job Execution Time metric does not update with user_rr
- [PIC-487] - IPLM Cache: Need to improve error message in picache.log file when no access to IPV folder
New Configuration File Options
mongod-server-selection-timeout-ms from PIC-440:
# Controls how long (in milliseconds) IPLM Cache will wait to find an
# available, appropriate MongoDB server. Defaults to 2000 (2 seconds).
# Used when mongod-host is uncommented.
#mongod-server-selection-timeout-ms = 2000
ipv-cleanup, ipv-cleanup-days, pi-server, and pi-server-credentials-file from PIC-455 (note that the existing ipv-cleanup-days setting has been redefined):
# Enables clean up (removal) of unused IPVs. Set to True to have IPLM Cache remove # IPVs from the cache that are not used in any Perforce IPLM workspaces. See # also ipv-cleanup-days. # Defaults to False in which unused IPVs are not removed. # If ipv-cleanup is set to True, the pi-server and pi-server-credentials-file # settings must be defined. # Project specific configuration can override this setting. #ipv-cleanup = True # Number of days to clean up (remove) IPVs which were initially loaded without # a workspace (e.g. via 'pi ip publish') and were never used in any workspace. # Defaults to 30. A value of zero means all IPVs without a workspace are # removed, regardless of whether or not they were initially loaded without a # workspace. Used when ipv-cleanup is set to True. # Project specific configuration can override this setting. #ipv-cleanup-days = 30 # host:port of PiServer that IPLM Cache accesses in order to clean up unused # IPVs. Also used on load and update operations to later facilitate IPV # cleanup. Also see pi-server-credentials-file. # Has no default. If ipv-cleanup is set to True, pi-server must be defined. # To use PiServer for load and update operations, define pi-server. If the # port is missing, a default port of 8080 is used. # Project specific configuration can override this setting. #pi-server = localhost:8080 # Path to file containing the PiServer admin credentials (username and # password) IPLM Cache uses to logon to the PiServer identified by pi-server. # Has no default. If pi-server is defined, pi-server-credentials-file must be # defined. # The contents of the file consists of two lines, the first line containing # only the username, the second line containing only the password. # Project specific configuration can override this setting. # The credentials file's permissions should be restricted, but make sure # IPLM Cache's main process can access the file. #pi-server-credentials-file = /path/to/pi/server/credentials/file
maintenance-period-hrs from PIC-460:
# The interval, in hours, at which IPLM Cache maintenance activities (cleanup
# and data consistency checks) will sleep for before running again. Defaults to
# 1 hour. A value of zero disables maintenance activities.
#maintenance-period-hrs = 1
maintenance-job-wait-mins and max-num-concurrent-check-jobs from PIC-476:
# The period of time, in minutes, IPLM Cache will wait for the remove and check
# jobs enqueued by the cleanup and data consistency check activities.
# Defaults to 10 minutes. A value of zero means no waiting is done.
#maintenance-job-wait-mins = 10
# The maximum number of concurrent IPV data consistency check jobs that can run
# at any one time. A value of zero means no limit. Defaults to zero. Give a
# non-zero value to balance IPV data consistency checking with responsiveness to
# end-user jobs.
#max-num-concurrent-check-jobs = 4
Known issues
- [PIC-273] - Filelist compression not handled correctly by auto remove and data consistency check features for internally enqueued jobs
- [PIC-280] - Removal of an IPV in wrong project does not show any error
- [PIC-315] - properly support using read-only p4 clients to sync p4 files
- [PIC-318] - [tools] query_mongo_log.py fails with MongoDB-unrelated config file errors
- [PIC-340] - IPLM Cache service startup takes 60 seconds to terminate on a configuration error
- [PIC-341] - IPLM Cache wait shutdown option does not work if a job takes longer than 10 seconds to complete upon IPLM Cache package shutdown
Restarting IPLM Cache will clean up locks and requeue jobs in wait queues. If using IPLM Cache in an HA configuration, a peer IPLM Cache instance will also requeue jobs and delete locks for the terminated IPLM Cache instance after a delay ofheartbeat-interval*heartbeat-loss-max. It is also possible to change the value for theSERVICE_STOP_WAITvariable in the init script from 10 to some larger value. - [PIC-377] - IPLM Cache to handle Redis instance becoming unavailable. For now, it is very important to not stop Redis while IPLM Cache is running.
- [PIC-405] - Investigate long standing front-end port reference. It is possible that upon PICache stopping, it may not be able to restart again for around 2 minutes.
- [PIC-429] - IPLM Cache cannot load an IPV when the metadata for the IPV is greater than 16 Mbytes (affecting IPVs with a very large file list)
- [PIC-491] - Ensure all IPLM Cache metrics are initialized. When IPLM Cache is first started, some of the metrics don't exist until some operations are run.