Release Notes for P4, the Helix Command Line, P4D, the Helix Versioning Engine P4P, the Helix Proxy and P4Broker, the Helix Broker Version 2018.2 Introduction This document lists all user-visible changes to: * Helix Versioning Engine (P4D) * Command line client (P4) * Helix Proxy (P4P) * Helix Broker (P4Broker) in 2018.2 release. Release notes for other Perforce Helix products are available separately on the Perforce Documentation web page. Developer notes for Perforce API programming, the Helix Broker and also a separate document which programmers should read in addition to this release note document. Perforce numbers releases YYYY.R/CCCCC, e.g. 2002.1/30547. YYYY is the year; R is the release of that year; CCCCC is the bugfix change level. Each bugfix in these release notes is marked by its change number. Any build includes (1) all bugfixes of all previous releases and (2) all bugfixes of the current release up to the bugfix change level. Both 'p4' and 'p4d' will report their version information by passing the '-V' flag. Additionally, 'p4' can report the server's information with the 'p4 info' command. Version information includes a release version and a build change number. The build change number can be compared with change numbers and patch information mentioned in the matching version release notes file to determine if a particular build of a version includes the change mentioned. Supported Platforms for p4d Linux kernel 2.6+ (glibc 2.12+) for Intel(x86, x86_64) Windows 8 for Intel(x86, x64) Windows 8.1 for Intel(x86, x64) Windows 10 for Intel(x86, x64) Windows 2008 for Intel(x86, x64) Windows 2012 for Intel(x64) Windows 2016 for Intel(x64) Apple OS X 10.10+ for Intel(x86_64) Supported Platforms for p4 Linux kernel 2.6+ (glibc 2.12+) for Intel(x86, x86_64) Windows 8 for Intel(x86, x64) Windows 8.1 for Intel(x86, x64) Windows 10 for Intel(x86, x64) Windows 2008 for Intel(x86, x64) Windows 2012 for Intel (x64) Windows 2016 for Intel(x64) Apple OS X 10.10+ for Intel(x86_64) Supported Platforms for p4p and p4broker Linux kernel 2.6+ (glibc 2.12+) for Intel(x86, x86_64) Windows 8 for Intel(x86, x64) Windows 8.1 for Intel(x86, x64) Windows 10 for Intel(x86, x64) Windows 2008 for Intel(x86, x64) Windows 2012 for Intel (x64) Windows 2016 for Intel(x64) Apple OS X 10.10+ for Intel(x86_64) -------------------------------------------------------------------------- Important Platform End-of-Life Notice This notice identifies the platforms that will be placed in End-of-Life (EOL) status on October 2020. This applies to p4, p4d, p4p, p4ftp, and p4broker components of the server release. The following platforms have entered the Obsolescent phase in this release: Mac OS X 10.5, 10.6, 10.7, 10.8, 10.9(x86, x86_64) Linux kernels (glibc < 2.12) for Intel(x86, x86_64) OBSOLESCENT Phase: Starting with this release,these platforms will no longer be supported. Customers will receive full support and patches for the deprecated platforms during this phase for older releases. The platforms will remain in this phase until October 2020 after which they will transition into the discontinued phase. DISCONTINUED (EOL) Phase: Patches will no longer be issued for these platforms. We will no longer provide technical support to customers with servers on these platforms -------------------------------------------------------------------------- Important limitation for Windows server Support for Helix Core Extensions was disabled for Windows servers due to unrelated performance concerns on that platform requiring a conflicting toolchain change. -------------------------------------------------------------------------- Important security note This release links OpenSSL version 1.1.1a. Note: 2018.2 patch 6 upgrades to OpenSSL 1.1.1a. -------------------------------------------------------------------------- Important export note This product is subject to U.S. export control laws and regulations including, but not limited to, the U.S. Export Administration Regulations, the International Traffic in Arms Regulation requirements, and all applicable end-use, end-user and destination restrictions. Licensee shall not permit, directly or indirectly, use of any Perforce technology in or by any U.S. embargoed country or otherwise in violation of any U.S. export control laws and regulations. -------------------------------------------------------------------------- Upgrading the Server ** IMPORTANT UPGRADE NOTES ** CHANGES TO UNLICENSED SERVER FOR THIS RELEASE For v16.1 onwards of the Helix Versioning Engine (P4D) the number of free users allowed with an unlicensed server has changed to 5, the number of clients remains at 20. Previous versions of the server will continue to support the 20/20 usage allowance. ------------------------------------------------------------------- BEFORE UPGRADING To upgrade your Helix Versioning Engine (P4D), your Perforce license file must be current. Expired licenses do not work with upgraded servers. In addition to your usual checkpointing scheme, always checkpoint your server immediately before undertaking an upgrade. DOWNGRADING A 2018.2 SERVER IS NOT POSSIBLE UPGRADING PROCEDURE IS DIFFERENT DEPENDING ON WHAT YOUR CURRENT PERFORCE VERSION IS: UPDATE DATABASE SCHEMA vs UPDATE DATABASE FORMAT ------------------------------------------------------------------- ** UPDATE DATABASE SCHEMA If your current server version is 2013.3 or above, then this upgrade is a UPDATE DATABASE SCHEMA upgrade: Unix Platforms 1. Issue the 'p4d -r -J -xu' command. This command performs the significant schema upgrades, then exits. 2. Restart your server with your site's usual parameters. Windows Platforms 1. Issue the 'p4d -r -J -xu' command from a command prompt window. This command performs the significant schema upgrades, then exits. 2. Restart your Helix Versioning Engine (P4D) service. Note: Personal DVCS servers will automatically perform any database schema upgrades; whilst the upgrade steps described above are unnecessary for these servers, they are safe to run. ------------------------------------------------------------------- ** UPDATE DATABASE FORMAT If your current server version is 2013.2 or a previous release then this upgrade is an UPDATE DATABASE FORMAT upgrade: Due to the new btree format introduced in 2013.3 this is not an UPDATE DATABASE SCHEMA upgrade. A checkpoint using your old server and then a restore using the 2018.2 server is required before the internal upgrades 'p4d -xu' (if required) can be performed. Note: If you have made use of the (undocumented) '+T' modifier (storing file content in the tiny.db database) this data is not checkpointed (and therefore not restored). See 'p4 help undoc' for backup/restore procedures for this table. Once the database has been restored with the 2018.2 version, update your database schema: Unix Platforms 1. Issue the 'p4d -r -J -xu' command. This command performs the significant schema upgrades, then exits. 2. Restart your server with your site's usual parameters. Windows Platforms 1. Issue the 'p4d -r -J -xu' command from a command prompt window. This command performs the significant schema upgrades, then exits. 2. Restart your Helix Versioning Engine (P4D) service. -------------------------------------------------------------------------- Interoperating With Previous Releases 1. Unless stated otherwise you can intermix any release of Helix Command Line (P4) with any release of the Helix Versioning Engine (P4D), but any functionality new to 2018.2 requires you to upgrade the client and/or P4D. See marks in the notes below. * -- requires new p4 client program including all client applications and derived APIs ** -- requires new p4d server program *** -- requires new p4p proxy program **** -- requires new p4broker broker program Any replica servers must be at the same release levels as the master server; any functionality that requires an upgrade for the master requires an upgrade for the replica, and vice versa. 2. Beginning with 99.2, remote depots will interoperate between UNIX and NT. Beginning with 98.2, remote depots will interoperate across (98.2 and higher) releases. In 98.1 and before, remote depots will only operate with another server of the same release. 3. As of 2005.1, remote depot support for 98.2 and 99.1 servers has been dropped. Attempts by 98.2 and 99.1 servers to contact 2005.1 servers still works, but the depots will appear devoid of files. -------------------------------------------------------------------------- Technology Preview features: Technology Preview features are currently unsupported, might not be functionally complete, and are not suitable for deployment in production. These features are provided to the customer to solicit interest and feedback, with the goal of full support in future releases. Customers are encouraged to provide feedback and functionality suggestions for Technology Preview features before they become fully supported. -------------------------------------------------------------------------- Important note: Please refer to: http://www.perforce.com/perforce/r18.2/user/relnotes.txt to get up to date GA and post-GA information about this release. -------------------------------------------------------------------------- Major new functionality in 2018.2 #1688531 (Bug #95155) ** The new 'p4 failover' command can be used for failing over a master (or edge) server to a standby (or forwarding-standby) server that is journalcopy'ing from the master server. Run on a standby server, the command orchestrates many facets of the failover process, including: Ensure that monitoring ('p4 monitor') is enabled on the standby server Coordinate with the standby server's 'pull -L' thread to ensure that the standby server has applied the metadata journalcopy'd from the master server Verify recently updated classic depot file content Move the latest journalcopy into place as the journal that will be used following failover Enable journaling on the standby server Update the configuration of the master server Update the serverID of the standby server to the master server's serverID Restart the standby server as the new master server If the master server participates in the failover, the 'p4 failover' command also orchestrates: Quiesce the master server: refuse new commands on the master server, wait a fixed amount of time for existing commands to complete, and then stall any remaining commands Coordinate with the standby server's 'journalcopy' and 'pull -u' threads to ensure that the standby server has all of the latest metadata and file content from the master server Stop the master server If the 'p4 failover' command is interrupted or encounters an error, the command will attempt to undo what has been done up to that point. But if the command has stopped the master server, that server will not be restarted. The standby server must be licensed as needed to function as the master server following failover. Prior to failing over an edge server, its service user should be logged into the commit (or master) server using the file specified by the P4TICKETS configurable for each standby of the edge server. And if needed, trust with the commit server for the service user should be established using the file specified by the P4TRUST configurable for each standby of the edge server. The 'p4 failover' command might update some of the configurables for the master server to ensure that it will function as expected when the command starts it in the environment within which the standby server was running. The configurables that might be updated are: P4AUDIT client.readonly.dir server.depot.root P4JOURNAL client.sendq.dir server.extensions.dir P4LOG journalPrefix server.locks.dir P4ROOT pull.trigger.dir statefile P4TICKETS rpl.journal.ack P4TRUST rpl.journal.ack.min When failing over an edge server, the update of its configurables cannot be propagated back to the commit (or master) server since the edge server might not be participating in the failover. After the failover, the updated configurables for the edge server will need to be changed on the commit server. In support of the new 'p4 failover' command, three fields have been added to the db.server table: Options, ReplicatingFrom, and FailoverSeen. The Options and ReplicatingFrom fields are part of a server's spec and can be changed using the 'p4 server' command. The ReplicatingFrom field is required for standby servers. Of particular note is the 'mandatory' option of the Options field in the server spec. When set for a standby server, that server will always participate in the calculation that determines when metadata is replicated to replicas (other than standby servers.) That is, metadata must be journalcopy'd to all mandatory standby servers before it will be replicated to other replicas. If a mandatory standby server is desired, it is recommended that it is initially deployed using the 'nomandatory' option. After the standby server's journalcopy thread has caught up with the master server, the 'mandatory' option can then be set in the server spec for the standby server on the master server. If the master server does not participate in the failover, the standby server on which the 'p4 failover' command is run must be a mandatory standby server. This ensures that replicas remain consistent with the master server following failover. There are several new files, typically in the P4ROOT directory, that contain journal positions related to this new functionality. They are the 'stateLEOF', 'statefailover', and 'statepullL' files. The 'stateLEOF' file contains the journal position of the last transaction replicated to replicas (other than standby servers) of the master server. This file is present for all standby servers of the master server if at least one of those is a mandatory standby server. If the 'stateLEOF' file is present, the 'pull -L' thread will apply to the standby server's metadata only what has been journalcopy'd through that journal position. This ensures the consistency of the metadata on the standby servers with the new master server when failover occurs without participation of the old master server. The 'statefailover' file will be deleted automatically when it is no longer needed; it persists after the failover to ensure the consistency of the journalcopy for the remaining standby servers. So that the 'statefailover' file can be deleted automatically, the ReplicatingFrom field must have a value in the server spec for all standby (and forwarding-standby) servers defined in the master server. Additional information is available from 'p4 help failover' and in the "Failover" section of the "Backup and recovery" chapter in the "Helix Core Server Administrator Guide: Fundamentals" manual. Technology Preview features in 2018.2 #1690230 (Bug #48387) ** The Helix Core Extension mechanism is a feature that allows the server to run administrator-supplied scripts written in the Lua programming language, packaged with metadata and other resources. The server runs these programs natively, providing a portable, versioned runtime with automatic replication and a programmatic API. Depot and repo owners may configure Extensions to operate on the areas they own without involving the super user. The scripting runtime is also available on the command-line client, via the 'p4 --script' flag. See 'p4 help extension' for further info. Note: Extensions are not available with Windows Server. -------------------------------------------------------------------------- Minor new functionality in 2018.2 #1707299 (Bug #91576) ** When unshelving an exclusively-locked file by another client, "p4 unshelve" reports the error message as a 'warning' rather than an 'info'. Output messages for "p4 edit/delete/reconcile/integ" are also changed similarly. This change will only affect the message type. The command return value will not change. To get the old behavior use p4 option -Zapi=[84 or earlier]. #1701226 (Bug #94362) ** The graph rebase command no longer duplicates commits; commits that would have no diff when replayed are now skipped. #1700123 (Bug #94681) ** All graph reference triggers will now populate the %refType% and %refFlags% placeholders. #1697842 (Bug #96191) ** A new 'auth-invalidate' trigger has been added. This is fired when a user's ticket is explicitly invalidated by 'p4 logout'. #1693278 (Bug #95956) ** The parallel sync 'db.sendq' table may now be partitioned, reducing lock contention, by setting the 'client.sendq.dir' configurable to a directory under which the per-client tables will be created. The specified directory may be set to the same as the have partition directory 'client.readonly.dir'. #1689195 (Bug #96066) ** 'p4 monitor show' now always shows 'pull -L' for the thread that applies metadata from a local journal. Showing the '-L' flag helps distinguish this thread from other pull threads. #1685442 (Bug #95168) ** 'p4 undo' is now supported for graph depots. See 'p4 help-graph undo'. #1678111 (Bug #95713) ** Additional configurables have been added for modifying the authentication behavior when auth-check-sso triggers are installed. Setting 'auth.sso.allow.passwd=1' will allow client's without the client-side P4LOGINSSO trigger configured to fall back to password authentication against the database. Setting 'auth.sso.nonldap=1' will allow non-LDAP users on an LDAP enabled servers to authenticate against the auth-check-sso trigger. When 'auth.sso.nonldap=1' is set, non-LDAP users will be required to have the client-side P4LOGINSSO trigger configured, unless the 'auth.sso.allow.passwd=1' is also set. #1677404 (Bug #95408) ** The tagged output for 'p4 change -o' now includes a shelveUpdate field, showing the last time shelved files on the change were updated. #1676951 (Bugs #43827, #95824) ** New -D flag in 'p4 user' that deletes the user and all the user's clients and reverts all the user's files. #1676343 (Bug #94823) ** A new 'action.csv' structured log has been added. This logs user initiated events that occur on the server. This log is intended to be consumed by downstream tools that would otherwise poll for changes. #1671478 ** Various compiler upgrades have adopted for better performance and security. These changes have yielded a 10% improvement to the file commit rate on Linux. #1666576 (Bug #92539) ** The default value of 'db.monitor.interval' has been changed to 30 seconds. This will allow admins to use 'p4 monitor terminate' to remove stale processes. Note that 'monitor' must also be set to at least 1 in order to use 'p4 monitor terminate'. #1663100 (Bugs #95230, #95159) ** Additional configuration data may now be sent to client-side P4LOGINSSO triggers by setting the 'auth.sso.args' configurable. The value of this configurable will be passed as the %ssoArgs% to the client-side P4LOGINSSO trigger. Additionally, the server-side auth-check-sso trigger may now use the %email% and %fullname% placeholders. #1644456 (Bug #94149) ** The graph related output from 'p4 have' has been improved to be more readable. The branch and sync'ed commit sha are now on the same line. #1644554 (Bug #94184) ** Added support for P4IGNORE in graph client Bugs fixed in 2018.2 Patch 10 #2038017 (Bug #102314) * Windows clients now correctly report when they are unable to replace files when using the long filename support. #2037903 (Bug #102314) ** Clients now correctly report when they are unable to delete files. #2009026 (Bug #102750) ** A crash bug would occur when submitting an integration from a local depot to a readonly depot. The integration was illegal, but would succeed with a sync/delete message, and a following submit would crash. This has been fixed. #1998631 (Job #103411) ** 'p4 reshelve' could crash when file arguments were provided. This has been fixed. #1975996 (Bug #102797) * Windows clients no longer leave trailing NULL bytes at the end of '+k' filetype files transfered via sync/print when the RCS 'Author' keyword was used and the username submitting the file was changed post-submit. Bugs fixed in 2018.2 Patch 9 #1973761 (Bug #102609) Network errors on Windows and Linux are now more accurately reported when additional tracing such as net=3 or ssl=3 are used. #1971411 (Bugs #042042, #102435) ** Windows file I/O now uses the native Windows API rather then the Posix file I/O routines. This removes the limit on the number of concurrent open files for the librarian and error logging. #1970610 (Bug #101504) ** A rare error that could lead to database deadlock around journal rotation time has been fixed. #1969996 (Bug #72507) ** If a file in a task stream is submitted with the reopen flag, and a resolve had been done prior on the file prior to the submit, then the submit would fail with the messages "Files newly opened or reverted during submission". This has been fixed. Bugs fixed in 2018.2 Patch 8 #1966821 (Bug #102541) ** 'p4 unshelve' no longer crashes if a network error is encountered during completion of the command. #1955701 (Bug #99520) ** 'p4 tag' run with multiple arguments updating an autoreload label no longer causes the label to be loaded into memory and rewriten to the unload depot for each argument. #1952395 (Bug #102264) ** This enhancement supports automatic start of the Perforce p4diag tool when the Perforce Windows Service starts. Two things are required. Place p4diag.exe in the same directory as p4s.exe and p4 set -s Perforce P4DIAGLOG to the p4diag log file name. See the p4diag autostart KB article. #1937480 (Bug #101639) ** 'p4 fstat -Ol' for graph depot could crash the server when run on mid-branch and a file there is deleted in the branch tip. #1925276 (Bug #100917) ** The 'p4 graph cat-file' command was missing the -o option. This change adds in the missing option. #1925275 (Bug #101062) ** When 'p4 have' for graph has no matching repos, it would complete as a failure. This fix changes the failure message "No matching repos" to the warning message "file(s) not on client". #1925274 (Bug #100902) ** 'p4 fstat -OI' for graph depots would miss changeCommit if the graph depot index is missing. Now, the changeCommit appears whether or not the index exists. Bugs fixed in 2018.2 Patch 7 #1915408 (Bug #101215) ** A memory leak in SSL-enabled servers has been closed. Bugs fixed in 2018.2 Patch 6 #1910107 (Bug #99171) ** Partitioned db.sendq tables are now removed if empty at the end of parallel syncs and on client delete. #1909547 * ** *** **** OpenSSL has been upgraded to 1.1.1a #1908978 (Bug #93870) ** 'p4d -cset', 'p4d -cunset' and 'p4d -cshow' no longer take write locks on all tables; instead only the tables required are locked. 'p4d -cshow' now only takes read locks. #1908978 (Bug #89608) ** 'p4d -cset' and 'p4d -cunset' now resolves the journal file to write too in the same way that the server would if started with the same flags and environment. When using 'p4d -cset' to set P4JOURNAL, if the new value would change the journal file being used, the new value is used instead. #1906390 (Bug #100948) ** 'p4 submit' now fails with a "tampered with after resolve" error when trying to submit an unshelved file that is resolved with 'ay' and then modified inadvertently. #1902810 (Bug #100608, #100945) ** Avoid error on conflicting clients for commands that are read-only. For 'p4 opened -c ' or -u, the current client of the user is irrelevant and no error should be displayed if that client is tied to another server. The same should be the case for 'p4 client' when the client name is provided as an argument or for 'p4 client -i' which should validate the client name listed in the form rather than the client tied to the user initiating the command. Also, 'p4 revert -C clientname' should ignore the admin's client since it is specified as a parameter. This has been fixed. #1902174 (Bug #100158) ** UTF8 type files sync'ed from cache mode replica with a pre-2016.2 client could report a depot file error. This has been fixed. Bugs fixed in 2018.2 Patch 5 #1883953 (Bug #100588) ** The server could return a bad result when attempting to join non-matching table keys. This has been fixed. #1882547 (Bug #83623) * ** The default value of the 'filesys.lockdelay' has been decreased from 300 to 90 to ensure abandoned .lck files are correctly deleted. Bugs fixed in 2018.2 Patch 4 #1840011 (Bug #75382) ** The maximum size of shared memory for monitor table use was too small (2048 8K pages). Now it's 32768 pages for all platforms except Windows 32bit where memory address space is severely limited. #1821148 (Bug #99117) ** 'p4 protects -M' was not displaying the correct result in P4AUTH environments. Additionally, the path handling for this command was only considering protections that matched all of the provided path not just a portion of that path. This has been fixed. #1811250 (Bug #96617) * Threaded parallel sync could occasionally fail to chmod or rename temp files. #1811202 (Bug #98605) ** Submitting import+ files from a task stream could have caused corruption to its task stream. This has been fixed. #1808412 (Bug #98651) ** The server can enter an infinite loop trying to join the rev and have table during a sync request using the #have revision specifier and a changed client view. This has been fixed. #1805688 (Bug #96532) ** 'p4 describe' would erroneously show the file type of added files as 'unset'. This has been fixed. #1805433 (Bug #97669) * ** *** **** SSL connections that negotiated with TLS 1.1 and above handshakes were rejected as plaintext. This has been fixed. Note that successful negotiation would still result in the use up to TLS 1.2 regardless of the version used for negotiation. #1796270 (Bug #98117) ** 'p4 pull' could fail to replicate spec depot archives due to a race condition introduced by a performance enhancement in release 2018.2. This has been fixed. 17935460 (Bug #98500) ** 'p4 filelog' results containing huge descriptions or many integration paths results in Rpc buffers too big. Fixed. #1790460 (Bug #97898) * The 'p4 clone' command could fail when using remote specifications with DepotMap paths containing spaces. This has been fixed. #1782952 (Bug #92961) ** Successful OTP based 2FA events logged to the auth.csv structured log were incorrectly recorded as failures. This has been fixed. #1782877 (Bug #95173) ** 'p4 describe' would report errors when run against shelved changelists created by 'p4 switch'. This has been fixed. Bugs fixed in 2018.2 Patch 3 #1830737 (Bug #99382) ** Support for Helix Core Extensions was disabled for Windows servers due to unrelated performance concerns on that platform requiring a conflicting toolchain change. #1777104 (Bug #98218) ** Revert of moved file when the move-from file was deleted at the head revision in a federated environment could have had unpredictable results due to accessing uninitialized data. This has been fixed. #1773516 (Bug #94976) ** The 'p4 revert' command now batches its journal work into fewer larger transactions, resulting in more efficient replication of this command. #1772859 (Bug #98011) ** Tamper error when submitting unshelved undo action on ktext file has been fixed. #1766398 (Bug #97896) ** Graph Depot: impose a maximum of 128 opened packed files. #1762665 (Bugs #97818, #97870, #97871) ** DVCS triggers (push-submit, push-content and push-commit) now support exclusionary mappings in the same way that submit triggers do: the paths of multiple consecutive trigger entries with the same name and type are aggregated into a single map. #1760683 (Bug #97566) ** If the listener address of the server from which failover is occurring is defined with an explicit host that is foreign to the standby server's machine, the server to which failover is occurring no longer fails to restart. The foreign host is now removed from the inherited server's listener address definition. #1760113 (Bug #97155) ** Deletion of a shelf during a 'p4 submit -e' could leave opened files that could not be reverted. This has been fixed. #1754580 (Bug #97618) ** Edge servers no longer allow deletion of a shelf created during the edge server submit process while the submit is in progress. Bugs fixed in 2018.2 Patch 2 #1750136 (Bug #95082) **** *** ** * The final select() for Rpc::Close() no longer blocks for ssl connections. The timeout is subject to 'net.maxclosewait'. #1750068 (Bug #96682) ** 'p4 submit' for only import+ files in the context of a task stream failed with message "Not permitted to update a task stream and Import+ file at the same time". This has been fixed so that only submitting import+ files is allowed from a task stream. Note that the submission of a mix of import+ files and task stream files is still not allowed. #1748252 (Bug #87889) ** 'p4 reopen' run on an edge server did not propagate updates to locks back to the commit server when changing the owner of opened files. This fix requires both the commit and edge server to be upgraded. #1746799 (Bug #95435) ** 'p4 undo' was recording the incorrect resolve action when files being undone were modified with 'p4 edit' before submit. This has been fixed. #1743034 (Bug #96758) ** 'p4 failover' now checks to ensure that the standby is suitably licensed for its role following failover. Bugs fixed in 2018.2 Patch 1 #1738306 (Bug #3933) ** 'p4 print -o' now handles paths with wildcards to write multiple files to the client's filesystem. The wildcards in the -o flags argument and the filespec must match. #1734880 (Bug #97134) ** Group protections entries containing wildcards in the group name could cause a server crash. This has been fixed. #1733586 (Bug #96791) ** Prior to failing over, 'p4 failover' now checks to ensure that there are no archive file content transfers that were not completed on the standby. #1730693 (Bug #97079) * 'p4 login' interrupted by ctrl-c no longer hangs. #1730544 (Bug #96839) ** Changing the 'ExtRev' field of a configured extension instance leaves the previous extension instance to remain as a duplicate. This has been fixed. #1729566 (Bug #97065) ** 'p4 -ztag info' now shows the 'security' tag when any auth-triggers are present. Additionally, if the auth-check-sso is configured, an 'ssoAuth' tag will also be shown, indicating whether P4LOGINSSO is required or optional. #1729420 (Bug #96450) ** 'p4 populate' was incorrectly taking the client's ChangeView into consideration. This command ignores the client view, it now ignores the ChangeView too. #1728264 (Bug #96335) ** Locks taken on files after a failed DVCS push could not be unlocked by admin or super users using 'p4 unlock -f' flag. This has been fixed. #1726738 (Bug #96662) ** Parallel submit could fail to transfer archive content if the file transfer threads exit without error. This has been fixed by ensuring that archives exist on the server before the submit continues and reports success. #1726440 (Bug #96818) ** Syncing to #have when the client view contains ditto mappings could produce the wrong results. This has been fixed. #1723656 (Bug #96826) ** 'p4 failover' no longer hangs waiting for the 'pull -L' thread to complete its work if the LEOF had not been advanced to the last consistency point journalcopy'd by the standby and either the master does not participate in the failover or some mandatory standby is not actively journalcopy'ing at the time of the failover. #1723368 (Bug #76162) ** 'p4 -ztag info' command now shows an 'unloadSupport' tag indicating if the server has a depot of type unload. The value will be either 'enabled' or 'disabled'. #1722714 (Bug #92743) * UTF8 validation would not catch invalid files where the file terminated with a partial multi-byte unicode character. This has been fixed. Bugs fixed in 2018.2 #1716935 (Bug #96569) ** The 'p4 switch stream@change' command now takes into account stream imports when syncing files. #1716652 (Bug #96588) ** 'p4 fetch -t' run against an edge server could crash the server. This has been fixed. #1716320 (Bug #96636) ** 'p4 describe' was not correctly handling graph depot binary files. This has been fixed. #1716305 (Bug #96634) ** 'p4 revert' was not correctly handling graph depot LFS binary files. This has been fixed. #1715880,#1718570 (Bug #96580) ** Resolve and merge of binary graph files are now handled correctly. #1715337 (Bug #96120) ** 'p4 undo' uses the current client mapping when placing undone files in the workspace. File locations maintained in haveMaps are ignored. #1714779 (Bug #91876) ** Obliterating a file in the parent of a task stream incorrectly removed the file from the depot. This has been fixed. #1712648 (Bug #94695) ** 'p4 integ' of a stream with a +S moved file could propagate wrong content. This has been fixed. #1712118 (Bug #86506) ** Unshelved files, opened for integrate, that were not previously sync'ed to the client would be deleted on revert, but the have record would remain causing sync errors later. This has been fixed. #1710647 (Bug #95908) ** Tamper checking has been restored for merged ktext files. #1709635 (Bug #96468) ** A graph merge -n operation with a conflicting file incorrectly stated that the merge will succeed. This has been fixed. #1709629 (Bug #96469) ** A graph merge -n operation did not clean up correctly, failing a subsequent graph merge request. This has been fixed. #1707891 (Bug #94445) ** Diff of non-modified graph depot file reported the wrong error message This has been fixed and the message is now "file(s) not opened on this client". #1707354 (Bug #96381) ** The 'p4 journals' command when run during a checkpoint operation could hang the server. This has been fixed. #1702795 (Bug #95804) ** The use of import+ in a stream spec to include a graph depot path is now blocked instead of being silently ignored. #1702793 (Bug #94078) ** Attempting to sync a repo with a badly configured default branch now produces warnings for those repos rather than blocking the sync. #1702779 (Bug #96093) ** Graph merges that would result in a fast-forward did not cause the reference triggers to fire. This has been fixed. #1702778 (Bug #95055) ** Edge servers no longer replicate graph metadata that are specific to clients on the commit server. #1702035 (Bug #96312) ** Processing of stream specs with a large number of exclude and/or isolate paths has been made faster. #1697165 ** The second factor authentication functionality has been renamed to multifactor authentication. This only affects documentation and messages sent to the client; configuration and tagged output have not been changed. #1693712 (Bug #95114) ** It was possible for 'p4 filelog' to cause a deadlock with other running commands. This has been fixed. #1693683 (Bug #94452) ** The update-ref graph command did not provide the correct value to the %refFlags% field to the graph-push-reference and graph-push-reference-complete triggers. This has been fixed. #1693642 (Bug #96127) ** The graph commands merge and rebase now create new changelists associated to the commits they create. #1692620 (Bug #96039) ** Files in graph that contain reserved characters could not be specified via standard Perforce commands. These characters may now be escaped when they are specified. #1691921 (Bug #96155) ** Improve the performance of group protections. #1690833 (Bug #95656) ** Ensure all clients see stream view changes after 'p4 stream edit'. #1689825 (Bug #96001) ** The repo and reference permissions are now correctly checked during a graph merge request. It uses the same model as submit and receive-pack. #1689663 (Bug #96020) ** A graph merge command with more than one repo and a missing source component can crash the server. This has been fixed. #1688338 (Bug #90929) ** Improved the error message generated when opening a graph file in a mixed mode client view that is not of the 'graph' type. It now adds the string "file is mapped read only". #1688292 (Bug #90685) ** Changed how the graph permissions are checked during a 'p4 graph receive-pack' command. This copies the methods used by submit and avoids checking each individual file path where possible. #1688251 (Bug #94895) ** It was possible for a superuser to delete a non-empty changelist for a task stream. This has been fixed. #1686860 (Bug #95988) ** The server no longer crashes when a parallel 'sync -L' is interrupted. #1682979 (Bug #86492) ** The obsolete 'Backup' field has been removed from the client spec comments section. #1682468 (Bug #73624) ** Shelving replication performance with forwarding (not edge) replicas has been improved. Previously 'shelve -r' would cause all of the archives in the shelved change to be transferred to its forwarding replica. This has been fixed to only transfer files that have changed. #1681302 (Bug #92509) ** The -v flag to 'p4 integrate' was moved to undoc in 2016.1. This change moves -v out of undoc and back into 'p4 help integrate' and the 'p4 integrate' usage message, thus making it no longer deprecated. #1680899 (Bugs #90782, #85175, #75672, #85342) * The command-line client will now run parallel syncs using threads instead of forked processes. #1677801 (Bug #95012) ** Edge server processing of a large obliterate, prune, or a task to development stream conversions can encounter replication performance issues with journal hook logging at rpl=4. Journal hook logging is now initiated at rpl=5 instead of rpl=4. #1675879 (Bug #91061) ** p4 edit/delete/add will show a warning if the user does not have write privilege for this file. #1673954 (Bug #95627) ** 'pull -L' now correctly updates the 'state' file through the end of consistency points containing only entries that don't actually apply any metadata (e.g. @nx@ and @ex@ entries). #1673827 (Bug #69353) ** 'p4 pull -u' will stop trying to pull archive content if it detects that the content is missing or corrupt on the master. #1671476 (Bug #95082) **** *** ** * The Rpc::Close() P4API function no longer does a blocking select(). Use the 'net.maxclosewait' configurable to control the timeout (defaults to 1 second). #1653848 (Bug #95033) ** A scheduled checkpoint on a 'standby' or 'forwarding-standby' server executed when the master server's journal is rotated no longer corrupts the prior journalcopy'd journal.