Jump to content

Shelve command on large changelists gets stuck

shelve stuck P4CLI P4V

  • Please log in to reply
2 replies to this topic

#1 eranb


    Advanced Member

  • Members
  • PipPipPip
  • 55 posts

Posted 19 July 2016 - 06:05 PM

In some cases, when we shelve large changelists generated by merge between branches, the command hang in the middle and never ends. by large changelists I mean 1000+ files.
It was reproduced from CLI and from P4V.
We couldn't understand what are the exact steps to reproduce the issue... but when it happens once on a changelist, it will always happen.
One work-around I found today is to shelve the files in bulks (100 at a time for example) but this is problematic with our automation.
When it happens in P4V we need to close the GUI and re-open.

client version 2015.2

Server version : Need to check with our IT.

Any direction for a solution will be great!


#2 CarolineB


    Advanced Member

  • Members
  • PipPipPip
  • 43 posts

Posted 08 August 2016 - 11:41 AM


There might be a good set of reasons for that :)

My first piece of advice would be to consider how you use shelves. May I ask why you want to shelve it? Why not using a stream dedicated to merging your branches, and keep the info in that stream, without shelving? Shelve, for me, is more intended for a short-term backup of a limited set of modifications...

Are you working in a distributed environment, with autopromoted shelves?

Does it depend on the size of your files, or on the number? What if you have 1000+ small files against 1000+ big files?

How do you proceed for shelving your files?

#3 Matt Janulewicz

Matt Janulewicz

    Advanced Member

  • Members
  • PipPipPip
  • 144 posts
  • LocationSan Francisco, CA

Posted 08 August 2016 - 06:02 PM

If you are in a distributed environment, do you see the same types of problems when you submit these changes? Note that in a commit->edge architecture, using a fairly new p4d, a submit will essentially shelve a file in the background for purposes of transferring the changes to the commit server. So in a way, it doesn't necessarily matter how big your submit is, it's going to get shelved one way or another. I believe they made a lot of improvements in shelving efficiency after 2015.1 or so.

Note that you can 'p4 info' on the commandline or look at help->system info in P4V to find out what version of the server you're connected to. If it's 2015.1 or so, I'd expect some inefficiencies around shelving. An upgrade should be in order!

One interesting thing to do (if you can get a shell on your servers) is to tail (follow) the journal (on both the commit and edge at the same time) as you're submitting or shelving. Any filesystem or network problems will surface there as you watch your files trickle through. :)

Lastly, just putting this here for posterity, when you submit files through a distributed architecture or otherwise shelve them, and you have auto-promoted shelves, it could put a burden on the filesystem on your commit server. Be sure you have fast disks, optimized filesystem, etc. Depending on how many of your replicas auto populate the files you happen to be submitting, you might be shelving files to send them to the commit server, then immediately and simultaneously sending them out to all the other replicas that sync those files.
-Matt Janulewicz
Staff SCM Engineer, Perforce Administrator
Dolby Laboratories, Inc.
1275 Market St.
San Francisco, CA 94103, USA

Also tagged with one or more of these keywords: shelve, stuck, P4CLI, P4V

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users