Major Enhancements

#408756 ** A new depot of type 'unload' can be configured so that old or infrequently used clients and labels can now be unloaded. Unloading removes database records from the live database tables and writes them to files in the unload depot. Routine use of the new 'p4 unload' and 'p4 reload' commands frees up space in the db.have and db.label tables for active clients and labels. Clients and labels can be reloaded as necessary. A label with the autoreload option set in its spec is always unloaded, and does not need to be explicitly reloaded prior to use. Note that unloaded labels and autoreload labels, like automatic labels, are always omitted from the results of 'p4 labels <filespec>'.

Minor Enhancements

#485057 (Bug #43361) ** 'p4d -xf 43361' can be used to create new db.have records from existing db.working records.

#483800 (Bug #57375, #53798) ** A new command 'p4 key' allows users with review permission to set, delete, and access key value pairs. These values can be viewed and searched with a complementary command 'p4 keys'. For more information see 'p4 help key/keys'.

#479199 (Bug #56618) ** On Windows, 'p4s -V' can be issued at the command line to view the version information of the p4s executable.

#471920 (Bug #16588, #15260) ** A new configurable, 'submit.unlocklocked', causes 'p4 submit' to unlock files from a failed submit.

#469562 (Bug #56270) ** 'p4 print' now accepts a '-k' flag to suppress keyword expansion.

#462379 (Bug #39317) ** New command 'p4 admin resetpassword' allows a super user to force user(s) with passwords to reset their passwords before issuing another command. In addition, a new configurable 'dm.user.resetpassword' allows forcing password resets for all newly created users with passwords. See 'p4 help admin' for more information.

#460143 * 'p4 -I submit' displays a progress indicator as files are being sent to the server during a change submit.

#452158 ** 'p4 fstat -Or' now displays all resolves associated with each open file, along with the type of resolve (content/branch/delete/etc), similar to "p4 resolved" and "p4 resolve -n".

#451955 ** 'p4 integrate' and 'p4 merge' now accept a -O flag that enables more verbose output. '-Ob' causes the base to be displayed, and '-Or' causes each scheduled resolve to be displayed. The old '-o' flag on 'p4 integrate' continues to function as a synonym for '-Ob', but is considered deprecated.

#448526 (Bug #25974) ** Automatic labels can now be used as 'pure' aliases for a single revision specifier (e.g. @change) by clearing (leaving blank) the view specification. When used in this way labels will perform better and behave exactly as the revision specifier rather than computing a label on-the-fly. See 'p4 help label' for more information.

#443861 (Bug #14936) ** 'p4d -jj' and 'p4d -jc' can now run a user supplied command as part of their operation while the locks are held on the database. Example usage: 'p4d -c "snapshot /depot" -jj The command is run after the journal rotate and before locks are released.

#438803 (Bugs #44867, #45119, #47718, #54043) ** 'p4 configure set defaultChangeType=restricted' can now be used to specify that new changelists should default to Type: restricted.

#436459 (Bug #53622) ** 'p4 list' now supports the '-M' flag, for use in forwarding replica scenarios. 'p4 list' by default is executed on the replica; if the '-M' flag is specified, 'p4 list' is forwarded to the master.

#436300 (Bug #53349) ** Audit logs on forwarding replicas now include user and client information when a 'p4 sync' command issued via the forwarding replica causes file content to be delivered by the replica.

#389844 ** 'p4 lockstat' now accepts the flags '-c client' and '-C' to specify reporting on the client workspace locks added in 2011.1.

#384638 *** ** * The net.maxwait configurable can be used to specify a hard limit (in seconds) on the maximum time that a connection will wait for any single network send or receive to complete. The 'p4 sync' command now supports a '-r' global flag to specify that the sync command should be retried if a network error occurs.

Bug Fixes

(Bug #73265) ** This version addresses the SSL/TLS MITM CVE-2014-0224 vulnerability in OpenSSL by linking in version 1.0.1h

#753521 (Bug #69986) ** * *** Prevent a broker infinite loop when there is a read error in some unusual circumstances.

#752957 (Bug #70168) ** A performance problem in 'p4 archive' introduced by change 696998 is addressed. The performance of 'p4 archive' now correctly depends on the number of revisions being archived, not on the total number of revisions examined by the 'p4 archive' command.

#744802 (Bug #69776) ** A server with security=3 which uses a P4AUTH server that has an auth-check trigger defined will no longer perform password strength checking, since the external authentication system is responsible for enforcing password strength requirements.

#708462 (Bug #68808) ** Changing the spec.hashbuckets configurable no longer causes all existing autoreload labels to be empty.

#696998 (Bug #67954) ** 'p4 archive' will now refuse to archive a revision which is used as the source of a pending or shelved integration.

#682756 (Bug #67781) ** Change #672688 introduced a regression which could cause the server to consume CPU and loop indefinitely when using the labels produced by 'p4 list' in a range scan (typically from P4V).

#682839 (Bug #66603) ** On Server shutdown, client commands which do not terminate in time will no longer cause a Windows Service stop error.

#672688 (Bug #67318) ** Using 'p4 reviews' with many file arguments (>1000) can lock out the db.user and tables for long periods.

#608133 (Bug #64478) ** Replica servers failed in certain specialized licensing scenarios.

#606617 (Bug #64384) ** Customers with large domain tables (million+ records) can experience performance problems if the data is continuously scanned for domain information. This change improves performance when querying with the name filter '-e|-E' and has support for a secondary index to allow fast access when using the '-u username' option. The index is created by using 'p4d -xf index.domain.owner'.

#603329 (Bug #64013) ** 'p4 revert' of unmatched move/delete files could in rare cases produce librarian errors or a crash. This has been fixed.

#603012 (Bug #62738) ** Concurrent 'p4 shelve -d -c <filename' could cause a server crash if the 'server.locks.dir' configuration setting had been disabled.

#598303 (Bug #63987) ** A memory leak in replica on-demand file transfer is fixed.

#598155 (Bug #63967) ** Updating the label spec for an autoreload label was incorrectly clearing the existing label contents.

#592561 (Bug #63437) ** Fixed license check failure on AIX 5.3, 6.1 on PPC; error was Perforce server error: Licensing error -- invalid server IP address. socket: create: Protocol not supported

#580136 (Bug #62686) * Fixed 'p4 delete symbolic-link-to-directory', which was broken by change 492002.

#579523 (Bug #62712) ** Fixed a problem introduced by change #571446 where 'integrate' could return inconsistent results.

#579138 (Bug #62606) ** Fixed 'p4d -jd' crash on a read-only database due to change 508345.

#576317 (Bug #62589) ** Fixed a server crash in 'p4 interchanges' and 'p4 merge' when files had been added, ignored, and then re-added, introduced by change #571446.

#574827 (Bug #62500) ** Corrected memory free pool management issue on Windows.

#572555 (Bug #62418) ** Fixed case where 'p4 copy' could report nothing to do if the latest source rev was a copy of an older target rev.

#571446 (Bug #57211, 62338) ** 'p4 merge' will now recognize when previously ignored changes have been forcibly re-integrated, and propagate those changes in future merges.

#567824 (Bug #62247) ** Fixed a server crash involving integrate of ignored changes between independently added files.

#565785 (Bug #62127) ** Fixed a rare server crash involving complex combinations of exclusions in protections, branch view, and client view in integrate.

#561051 (Bug #61920) ** Two or more submits running concurrently could lock-step each other in a way that would delay the call to get the wallclock time for the submit, this could result in changelist/time ordering anomaly.

#550724 (Bug #61278) ** Fixed crash and "cyclic dependency" warning when integrating into a file with a resolve scheduled from its own head revision.

#547239 (Bug #61205) ** Fixed a timing problem impacting forwarding replica reliability on Windows servers.

#546019 (Bug #59572) ** Server restart command on Windows now allows client commands to stop before initiating the restart operation.

#545511 (Bugs #53165,#60056) ** *** A Windows virus scanner will no longer block access to the logfile and cause multiple concurrent threads to hang.

#542667 (Bug #60854) ** 'p4d -jr' and 'p4d -jc' were mistakenly printing error messages to the log defined by P4LOG or by the -L flag, rather than to stderr. That behavior is reverted, and these commands once again print any error messages to stderr.

#541593 (Bug #59534) ** When an unloaded client or label was deleted from the master server, the replica server would fail to delete the unload file from the replica's unload depot filesystem.

#541534 (Bug #59746) ** A 'p4 obliterate' would be unnecessarily delayed by a 'p4 submit' which was waiting for the client workspace lock held by a long-running 'p4 sync' command on the same client workspace. 'p4 lockstat -c|-C' now also reports on the server 'meta' lock, which is used to synchronize depot-wide commands such as 'p4 obliterate' and 'p4 retype -l'. #532763 (Bug #60277) ** Server crash caused by malicious connection. Fixed.

#531495 (Bug #59407, #60228) ** 'p4 resolve' should now run faster with very large numbers of files.

#530355 (Bug #60086) ** Files of type '+S' that were both copied and moved in the same changelist could have incorrect digests recorded at submit, requiring 'verify -v' to correct. This has been fixed.

#519219 (Bug #58589) ** Unshelved resolved ktext files that are re-shelved or submitted with tamper-checking no longer report bogus 'tamper with after resolve' errors.

#517852 (Bug #59338) * ** *** A memory leak of NetSslTransport if SSL Handshake fails.

#515167 (Bugs #59192,#51548) ** A memory leak in the client workspace lock feature is fixed.

#511535 (Bug #59042) ** 'p4 unshelve' would fail for files that had been shelved via 'p4 merge' if the files had not been resolved prior to shelving. This has been fixed.

#510327 (Bug #34560) ** 'p4 move' will now correctly handle 'apple' type files on non-Mac clients.

#509653 (Bug #58973) ** Files that do not have stored digests will no longer produce spurious 'tampered' errors on resolve.

#508345 (Bug #58843) ** 'p4d -m -jr' now processes @dl@ journal records.

#507162 (Bug #56087) ** 'p4 interchanges' no longer takes a shared lock on the spec database table 'db.revsx'.

#506974 (Bug #52926) ** 'p4 login -h' now uses the correct host when the auth-check-sso trigger is defined on the server.

#506481 (Bugs #53506, #57610) ** Certain low-level fatal assertion-failed messages are now captured in the highest-numbered structured server log file which records event log records, if such a server log has been configured.

#504683,#506265 (Bugs #51740,#55195) ** When an archive file is damaged or missing, the server error message now includes an additional line providing the librarian file name and revision string.

#503491 (Bugs #58614,#57495) ** 'p4 monitor show -s R' was including IDLE threads in its display.

#502859 (Bug #57725) ** A replica server might fail to transfer a file with the message: "Wildcards (*, %%x, ...) not allowed in '//path/to/file', if the file contained a certain pattern of embedded wildcards.

#502560 (Bug #58554) ** 'p4 jobs -e DateField=YYYY/MM/DD' would return a job with a date value of exactly midnight on the next day.

#496643 (Bug #58153) ** 'p4 logschema' was missing the 'f_' prefix on log field names.

#495402 (Bug #57694) ** The command 'p4 jobs -e query' is now restricted by maxScanRows, previously a malformed query could cause a scan of the db.ixtext table.

#493204 (Bug #57484) ** When 'p4 populate' invokes a 'change-commit' trigger, it now ensures that the %oldchangelist% and %changeroot% trigger variables are set.

#493031 (Bug #57467) * On Windows, 'p4 set' now issues a warning if asked to set an unknown variable, even if the variable name is in lower case.

#492542 (Bug #52567) ** 'p4 submit' with the 'revertunchanged' option will no longer revert files that have been resolved. This behavior now more closely mirrors 'p4 revert -a' with respect to which files are considered 'unchanged'.

#492002 (Bug #57360) * 'p4 sync' will no longer issue the confusing message: unlink: //path/to/file: Is a directory in the case where: a) there exist both a (deleted) file and a directory which have the same name, b) the directory is currently sync'd on the client, and c) the sync command was instructed to delete the file.

#490279 (Bug #57672) * The presence of a P4CONFIG file would inadvertently turn off buffered i/o for standard output.

#483306 (Bug #57202) ** A Windows server would produce a minidump if it encountered an error opening the file.

#482308 (Bug #58492) ** When using a Build Farm replica server, the preferred usage pattern is to define bound clients solely on the replica. In such a case, if a client, branch, depot, label, or stream is later defined to the master server with the same name as the bound client on the Build Farm server, the Build Farm replica server will no longer corrupt the bound client definition during replication of the conflicting change from the master. Instead, the replica will issue a message, halt replication, and wait for the bound client to be explicitly deleted before resuming replication.

#481402 (Bug #57038) ** 'p4d -jd' now issues an error message if the dumpfile name is a database table name, to avoid accidentally overwriting it.

#476723 (Bug #56552) ** 'p4 reconcile' with no arguments would fail to find files to add if the server was on windows and the client was not a windows client. This has been fixed.

#473903 ** A forwarding replica on a case-sensitive platform will now cache files submitted via that replica using case sensitive file and directory names in the replica depot directory.

#469767 (Bug #48489) ** 'p4 print' will now display headers for deleted or otherwise "empty" revisions that previously were omitted entirely.

#467458 (Bug #29995, #44294) ** Attempts to open one workspace file with multiple different depot file mappings will now fail with the error message "can't open FILE1 (already opened as FILE2)".

#465399 (Bug #46119, #46330, #46364, #47555, #52561, #53282, #53307, #53810, #54143, #55603, #59884) ** A number of bugs have been fixed in the v3 base selection engine that is used by the 'p4 merge' command. Merge base selection should now be optimal in more cases, and atomicity of move operations is now enforced when opening files for integrate.

#465201 (Bug #59070) ** 'p4 client -d' now removes the server.locks entry for the client.

#464243 (Bug #56085) ** A 'move' type resolve of a file open for 'branch' will now relocate the file with the original action, rather than reopening it for 'move/add' (similar to the 'p4 move' command).

#463703 (Bug #56037) ** 'p4d -s -jr' now respects a P4JOURNAL configuration set via the 'p4 configure' command.

#461647 (Bug #52265) ** On a replica server, 'p4 admin checkpoint [-z|-Z]' now validates the option flags passed on the command.

#460619 (Bug #51837) ** 'p4 configure show' now displays the serverid, if it has been set, as well as the Name and Address from the server definition, if set.

#459963 (Bug #55879) ** 'p4 admin updatespecdepot' would add an extra copy of the typemap spec to the spec depot each time it was run.

#454277 ** An improved message is now issued when a remote depot access fails because the initiating server's service user is not currently logged in to the remote server.

#453368 (Bug #55599) ** The 'p4 server' command now validates the 'Type' and 'Services' fields more completely.

#451742 (Bug #55560) ** A file that receives a content merge and is moved in the same changelist will now have an "edit into" reverse integration record.

#449001 (Bug #52481) ** Replica servers now reload their dynamic configuration only when the persistent configuration is changed, rather than on every configuration timer expiration.

#448082 (Bug #51880) ** 'p4 protects' will bail with an error if a user issues mutually exclusive -a/-g/-u flags together in the same command.

#447109 (Bug #38933) ** 'p4 move -f' will no longer try to move a file open for add into an existing file.

#447020 (Bug #42838) ** The error message generated when trying to delete a client with shelved changes now includes the change numbers that need to be deleted.

#446212 (Bug #47460) ** Group names longer than 128 characters no longer generate an error message about "server.locks filename too long".

#445617 (Bugs #54980, #55023) ** 'p4 configure set' now checks server log file configuration variables more thoroughly.

#443291 (Bug #54898) ** 'p4 populate' with a local filespec and no provided change description will no longer generate a description that references a top level depot path.

#442968 (Bug #53427) ** Specifying an unknown logfile as the '-l' flag to 'p4 logrotate' now produces a "no such logfile" message.

#438461 (Bug #53789) ** When integrate schedules a move resolve of a deleted source file it will now also schedule a delete resolve. If the delete is not conflicting, the move resolve will be set up to ignore, and if another (non-deleted) source file maps to the same target, the delete will be set up to ignore.

#436823 (Bug #52944) ** The setting of the net.maxwait tunable now affects the SSL handshake, so users of SSL connections should set net.maxwait to a value which is large enough to accommodate the typical handshake duration.

#435664 (Bug #53671) ** Commands issued on a long-lived connection to a forwarding replica now recognize a new depot created earlier on that connection.

#426299 (Bugs #47645, #53006) *** Premature client disconnects, such as those caused by a user interrupting a command, on connections that include a broker or forwarding replica, are now detected more quickly by the server.

#396573 (Bugs #50941, #50960, #50961) ** Client specifications with improperly escaped special characters in the client Root: or AltRoot: fields are now rejected when the client spec is submitted to the server.