SlideShare a Scribd company logo
1 of 48
Tips from Support:
Always Carry a Towel Don’t Panic!
Tim O’Mahony
Senior Manager of Support and Development,
Perforce Software
2
A hitchhikers guide to Helix issues
 Nothing Happened
 “Funny”…
 Vogon Poetry
 Don’t Panic
 The Babel fish
 Solving Issues with potatoes
 42
Nothing happened.
The “normal” state of affairs
“For a moment, nothing
happened. Then, after a
second or so, nothing
continued to happen.”
5
Nothing Happened…
 What is the “Baseline” of your Server?
 Questions to ask yourself
• How fast should Commands should come back? What’s a reasonable time
for my server?
• Errors aren’t happening? What errors can I ignore?
• What’s my normal load averages? CPU;RAM;I/O
• How quiet are my end users?
 What do you consider normal?
6
Nothing Happened…
“Funny”…
When things start to go wrong
“Funny, how just when you
think life can’t possibly get
any worse it suddenly
does.”
9
Funny…
 What is now not normal?
 When?
 Where is something broken?
• Server side?
• Client side?
• Network?
 What is the actual error?
 What does the user say is happening?
10
Funny…
 Operating System vs Perforce
Perforce client error:
Connect to server failed; check $P4PORT.
TCP connect to asoida:1666 failed.
Name or service not known
Perforce client error:
Connect to server failed; check $P4PORT.
TCP connect to 10.3.0.2:1668 failed.
connect: 10.3.0.2:1668: Connection refused
vs
11
Funny…
 Operating System
Perforce client error:
Connect to server failed; check $P4PORT.
TCP connect to 10.3.0.2:1668 failed.
connect: 10.3.0.2:1668: Connection refused
12
Funny…
 Operating System
Perforce server error:
Operation: lbr-SubmitFile
Operation 'lbr-SubmitFile' failed.
Librarian checkin //depot/dev/tomahony/hitchhickers.txt failed.
lock on depot/dev/tomahony/hitchhickers.txt failed
open for write: depot/dev/tomahony/hitchhickers.txt,v : Permission denied
13
Funny…
 Perforce Errors
Submit validation failed -- fix problems then use 'p4 submit -c 835231'.
'check_in_test' validation failed: no error message
Client map too twisted for directory list.
$ p4 add install
install - no permission for operation on file(s).
Perforce password (P4PASSWD) invalid or unset.
Vogon Poetry
The art of understanding the log file
“On no account allow
a Vogon to read poetry
at you”
16
Vogon Poetry
 Turn on Verbose logging:
• p4 configure set track=1
• p4 configure set server=3
17
Vogon Poetry
18
Vogon Poetry
who
client IP version command
usage
db file access
19
Bad Vogon Poetry
--- lapse 908s
--- usage 148058+740688us 0+0io 1+0net 0k 0pf
--- killed by client disconnect
--- rpc msgs/size in+out 0+2/0mb+0mb himarks 32068/2000
--- rpc receive errors, duplexing F/R 0/0
--- db.rev
--- total lock wait+held read/write 0ms+0ms/0ms+686780ms
--- db.revdx
--- pages in+out+cached 131340+0+96
--- locks read/write 1/1 rows get+pos+scan put+del 0+18+269548 0+0
--- total lock wait+held read/write 0ms+0ms/0ms+686753ms
--- db.revhx
--- pages in+out+cached 118960+0+96
--- locks read/write 1/2 rows get+pos+scan put+del 0+18+2381394 0+0
--- total lock wait+held read/write 0ms+0ms/0ms+686746ms
--- db.protect
--- total lock wait+held read/write 0ms+165ms/0ms+0ms
20
Bad Vogon Poetry
--- lapse 908s
--- usage 148058+740688us 0+0io 1+0net 0k 0pf
--- killed by client disconnect
 Long Lapse times with large CPU usage
 Long Database locking
--- db.revdx
--- pages in+out+cached 131340+0+96
--- locks read/write 1/1 rows get+pos+scan put+del 0+18+269548 0+0
--- total lock wait+held read/write 0ms+0ms/0ms+686753ms
 Culprit vs Victim – not all long commands are bad things
21
Vogon Poetry
 Knowledge base articles to help you:
Interpreting server log files
• http://answers.perforce.com/articles/KB/2525
Simple P4D Log Analysis
• http://answers.perforce.com/articles/KB/2514
Using the Log Analyzer
• http://answers.perforce.com/articles/KB/1266
22
Vogon Poetry
 Manage your log files
 Tracking and verbose logging can get big very quickly…
• no bigger than that.
 Consider where you are storing your logs
 How much can you store?
• 1 day, 2 days, 7 days?
 Consider non-perforce logging too as part of your baseline
Don’t Panic
Really scary errors
“it has the words DON’T
PANIC inscribed in large
friendly letters on it’s
cover.”
25
Don’t Panic
 BTree is corrupt! dbverify
• When to run “p4d –xv”?
• When should I run “p4d –xx”
• p4d –xf
• p4 dbverify
• p4 dbstat
26
Don’t Panic
 -xv vs –xx
• Validating db files
• Inconsistencies found
- jnl.fix files
 Not the same thing
 Check with support!
27
Don’t Panic
Validating db.have
**** Checksum mismatch ****
possible data corruption Problems Summary:
pages which are not connect to tree or freelist
pages which are not valid or uninterruptable
pages which are visited multiple times in tree and freelist
data is out of order - table restore required
B-tree does not have consistent level count
 p4d –r $P4ROOT –xv
• output – as bad as it gets
28
Don’t Panic
 p4d –r $P4ROOT –xv; recovery
• Checkpoints, checkpoints and checkpoints
• p4d –r $P4ROOT –jds –z dump.gz
• Grep the journal
• Partially restore tables
• Is it a secondary index? Can you rebuild using –xx?
29
Don’t Panic
 p4d –r $P4ROOT –xx output
30
Don’t Panic
 Perforce Schema! See why the tables are related
• https://www.perforce.com/perforce/doc.current/schema/index.html
Babel Fish
Understanding what to do next and
why support is asking what it is.
33
Babel Fish
 What should I have ready?
• Version details (p4 –Ztag info)
• Server configurables (p4 configure show)
• Server logs (ask for ftp accounts)
• Reproduction cases…
• The actual “error”
• Checkpoints/journals at hand; at least a list of what you have.
34
Babel Fish
 Support wants to know the big picture
 We want to know what and where you’re going.
 We want to know why you you’re doing something
 Support wants to know the small details
 It’s the small things that count.
 These can give the biggest clues but are easily missed
Solving issues with Potatoes
“It is a mistake to think
you can solve any major
problems just with
potatoes.”
37
Solving issues with Potatoes
 Don’t turn it on and off again
 Killing processes can cause worse things to happen
 If you must shutdown see Shutting down the Server:
http://answers.perforce.com/articles/KB/2580
 Who’s running what commands?
 Look at p4 monitor; nestat –anp;
 Read the full error!
 Corruptions – Restore from checkpoints/journals
38
Solving issues with Potatoes
 Who changed what and when?
 Know your timings of events
 Check what started in the logs around those times
 Can you back out the change? Does this help?
42
I mean, what's 6 times seven?
“Forty-two”
41
42
 Going forward
 Server log, storage, know what errors you see
 Steps to take
 Create baselines
 Thinks to consider
 Disaster Recovery
42
42
 Creating Baselines
• Df
• sar
• iostat
• vmstat
• Mpstat
 Regular Intervals for all commands
 Nagios plugins
43
42
 Iostat
• Iostat without any argument displays information about the CPU usage, and I/O
statistics about all the partitions on the system as shown below.
44
42
 vmstat
• vmstat by default will display the memory usage (including swap) as shown
below.
45
42
 vmstat
• Procs – r: Total number of processes waiting to run
• Procs – b: Total number of busy processes
• Memory – swpd: Used virtual memory
• Memory – free: Free virtual memory
• Memory – cache: Memory used as cache.
• Swap – si: Memory swapped from disk (for every second)
• Swap – so: Memory swapped to disk (for every second)
• IO – bi: Blocks in. i.e blocks received from device (for every second)
• IO – bo: Blocks out. i.e blocks sent to the device (for every second)
• System – in: Interrupts per second
• System – cs: Context switches
• CPU – us, sy, id, wa, st: CPU user time, system time, idle time, wait time
46
42
 Mpstat
• By default mpstat displays CPU statistics
• Option -P ALL, displays all the individual CPUs (or Cores) along with its
statistics as shown below.
47
42
 Nagios Plugin
 Written by Karl Wirth, UK Tech Support
• Available in the workshop
https://swarm.workshop.perforce.com/files/guest/karl_wirth/Nagios
So long, and thanks
for all the Fish!
https://www.perforce.com/support-services
Tim O’Mahony
tomahony@perforce.com

More Related Content

What's hot (20)

Tuberculosis Pulmonar
Tuberculosis PulmonarTuberculosis Pulmonar
Tuberculosis Pulmonar
 
carbunco o antrax
carbunco o antraxcarbunco o antrax
carbunco o antrax
 
Metodo de comparacion2011
Metodo de comparacion2011Metodo de comparacion2011
Metodo de comparacion2011
 
Enfermedad de chagas
Enfermedad de chagasEnfermedad de chagas
Enfermedad de chagas
 
Enterovirus
EnterovirusEnterovirus
Enterovirus
 
Vigilancia tmi vih-sifilis- 19-10-17
Vigilancia tmi  vih-sifilis- 19-10-17Vigilancia tmi  vih-sifilis- 19-10-17
Vigilancia tmi vih-sifilis- 19-10-17
 
Esquistosomiasis
EsquistosomiasisEsquistosomiasis
Esquistosomiasis
 
Salmonella typhi
Salmonella typhiSalmonella typhi
Salmonella typhi
 
E. chagas y gestación
E. chagas y gestaciónE. chagas y gestación
E. chagas y gestación
 
Bronconeumonía
Bronconeumonía Bronconeumonía
Bronconeumonía
 
Infecciones por cateter
Infecciones por cateterInfecciones por cateter
Infecciones por cateter
 
INFLUENZA ESTACIONAL
INFLUENZA ESTACIONALINFLUENZA ESTACIONAL
INFLUENZA ESTACIONAL
 
Blastomicosis
BlastomicosisBlastomicosis
Blastomicosis
 
Criptococosis
CriptococosisCriptococosis
Criptococosis
 
Ciclosporiasis
CiclosporiasisCiclosporiasis
Ciclosporiasis
 
infeccion por virus del zika presentacion UPSJB.pptx
infeccion por virus del zika presentacion UPSJB.pptxinfeccion por virus del zika presentacion UPSJB.pptx
infeccion por virus del zika presentacion UPSJB.pptx
 
INFECCIÓN DEL TRACTO URINARIO
INFECCIÓN DEL TRACTO URINARIOINFECCIÓN DEL TRACTO URINARIO
INFECCIÓN DEL TRACTO URINARIO
 
DIAGNOSTICO-DENGUE-2021.pdf
DIAGNOSTICO-DENGUE-2021.pdfDIAGNOSTICO-DENGUE-2021.pdf
DIAGNOSTICO-DENGUE-2021.pdf
 
El mal de chagas
El mal de chagasEl mal de chagas
El mal de chagas
 
DIFTERIA, TOS FERINA, TÉTANOS
DIFTERIA, TOS FERINA, TÉTANOS DIFTERIA, TOS FERINA, TÉTANOS
DIFTERIA, TOS FERINA, TÉTANOS
 

Similar to Tips from Support: Always Carry a Towel and Don’t Panic!

Silicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Silicon Valley Code Camp 2015 - Advanced MongoDB - The SequelSilicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Silicon Valley Code Camp 2015 - Advanced MongoDB - The SequelDaniel Coupal
 
Practical IoT Exploitation (DEFCON23 IoTVillage) - Lyon Yang
Practical IoT Exploitation (DEFCON23 IoTVillage) - Lyon YangPractical IoT Exploitation (DEFCON23 IoTVillage) - Lyon Yang
Practical IoT Exploitation (DEFCON23 IoTVillage) - Lyon YangLyon Yang
 
BTV PHP - Building Fast Websites
BTV PHP - Building Fast WebsitesBTV PHP - Building Fast Websites
BTV PHP - Building Fast WebsitesJonathan Klein
 
BSides_Charm2015_Info sec hunters_gathers
BSides_Charm2015_Info sec hunters_gathersBSides_Charm2015_Info sec hunters_gathers
BSides_Charm2015_Info sec hunters_gathersAndrew McNicol
 
Technical track-afterimaging Progress Database
Technical track-afterimaging Progress DatabaseTechnical track-afterimaging Progress Database
Technical track-afterimaging Progress DatabaseVinh Nguyen
 
Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016Brendan Gregg
 
Steelcon 2014 - Process Injection with Python
Steelcon 2014 - Process Injection with PythonSteelcon 2014 - Process Injection with Python
Steelcon 2014 - Process Injection with Pythoninfodox
 
Putting Kafka Into Overdrive
Putting Kafka Into OverdrivePutting Kafka Into Overdrive
Putting Kafka Into OverdriveTodd Palino
 
Your Inner Sysadmin - MidwestPHP 2015
Your Inner Sysadmin - MidwestPHP 2015Your Inner Sysadmin - MidwestPHP 2015
Your Inner Sysadmin - MidwestPHP 2015Chris Tankersley
 
When DevOps and Networking Intersect by Brent Salisbury of socketplane.io
When DevOps and Networking Intersect by Brent Salisbury of socketplane.ioWhen DevOps and Networking Intersect by Brent Salisbury of socketplane.io
When DevOps and Networking Intersect by Brent Salisbury of socketplane.ioDevOps4Networks
 
OSDC 2016 - Ingesting Logs with Style by Pere Urbon-Bayes
OSDC 2016 - Ingesting Logs with Style by Pere Urbon-BayesOSDC 2016 - Ingesting Logs with Style by Pere Urbon-Bayes
OSDC 2016 - Ingesting Logs with Style by Pere Urbon-BayesNETWAYS
 
Sensu and Sensibility - Puppetconf 2014
Sensu and Sensibility - Puppetconf 2014Sensu and Sensibility - Puppetconf 2014
Sensu and Sensibility - Puppetconf 2014Tomas Doran
 
All of Your Network Monitoring is (probably) Wrong
All of Your Network Monitoring is (probably) WrongAll of Your Network Monitoring is (probably) Wrong
All of Your Network Monitoring is (probably) Wrongice799
 
MeetBSD2014 Performance Analysis
MeetBSD2014 Performance AnalysisMeetBSD2014 Performance Analysis
MeetBSD2014 Performance AnalysisBrendan Gregg
 
Hadoop Operations: Keeping the Elephant Running Smoothly
Hadoop Operations: Keeping the Elephant Running SmoothlyHadoop Operations: Keeping the Elephant Running Smoothly
Hadoop Operations: Keeping the Elephant Running SmoothlyMichael Arnold
 
Big server-is-watching-you
Big server-is-watching-youBig server-is-watching-you
Big server-is-watching-youmkherlakian
 
SFBigAnalytics_20190724: Monitor kafka like a Pro
SFBigAnalytics_20190724: Monitor kafka like a ProSFBigAnalytics_20190724: Monitor kafka like a Pro
SFBigAnalytics_20190724: Monitor kafka like a ProChester Chen
 
Open Source Tools for Leveling Up Operations FOSSET 2014
Open Source Tools for Leveling Up Operations FOSSET 2014Open Source Tools for Leveling Up Operations FOSSET 2014
Open Source Tools for Leveling Up Operations FOSSET 2014Mandi Walls
 
Progress OE performance management
Progress OE performance managementProgress OE performance management
Progress OE performance managementYassine MOALLA
 
Progress Openedge performance management
Progress Openedge performance managementProgress Openedge performance management
Progress Openedge performance managementYassine MOALLA
 

Similar to Tips from Support: Always Carry a Towel and Don’t Panic! (20)

Silicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Silicon Valley Code Camp 2015 - Advanced MongoDB - The SequelSilicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Silicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
 
Practical IoT Exploitation (DEFCON23 IoTVillage) - Lyon Yang
Practical IoT Exploitation (DEFCON23 IoTVillage) - Lyon YangPractical IoT Exploitation (DEFCON23 IoTVillage) - Lyon Yang
Practical IoT Exploitation (DEFCON23 IoTVillage) - Lyon Yang
 
BTV PHP - Building Fast Websites
BTV PHP - Building Fast WebsitesBTV PHP - Building Fast Websites
BTV PHP - Building Fast Websites
 
BSides_Charm2015_Info sec hunters_gathers
BSides_Charm2015_Info sec hunters_gathersBSides_Charm2015_Info sec hunters_gathers
BSides_Charm2015_Info sec hunters_gathers
 
Technical track-afterimaging Progress Database
Technical track-afterimaging Progress DatabaseTechnical track-afterimaging Progress Database
Technical track-afterimaging Progress Database
 
Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016
 
Steelcon 2014 - Process Injection with Python
Steelcon 2014 - Process Injection with PythonSteelcon 2014 - Process Injection with Python
Steelcon 2014 - Process Injection with Python
 
Putting Kafka Into Overdrive
Putting Kafka Into OverdrivePutting Kafka Into Overdrive
Putting Kafka Into Overdrive
 
Your Inner Sysadmin - MidwestPHP 2015
Your Inner Sysadmin - MidwestPHP 2015Your Inner Sysadmin - MidwestPHP 2015
Your Inner Sysadmin - MidwestPHP 2015
 
When DevOps and Networking Intersect by Brent Salisbury of socketplane.io
When DevOps and Networking Intersect by Brent Salisbury of socketplane.ioWhen DevOps and Networking Intersect by Brent Salisbury of socketplane.io
When DevOps and Networking Intersect by Brent Salisbury of socketplane.io
 
OSDC 2016 - Ingesting Logs with Style by Pere Urbon-Bayes
OSDC 2016 - Ingesting Logs with Style by Pere Urbon-BayesOSDC 2016 - Ingesting Logs with Style by Pere Urbon-Bayes
OSDC 2016 - Ingesting Logs with Style by Pere Urbon-Bayes
 
Sensu and Sensibility - Puppetconf 2014
Sensu and Sensibility - Puppetconf 2014Sensu and Sensibility - Puppetconf 2014
Sensu and Sensibility - Puppetconf 2014
 
All of Your Network Monitoring is (probably) Wrong
All of Your Network Monitoring is (probably) WrongAll of Your Network Monitoring is (probably) Wrong
All of Your Network Monitoring is (probably) Wrong
 
MeetBSD2014 Performance Analysis
MeetBSD2014 Performance AnalysisMeetBSD2014 Performance Analysis
MeetBSD2014 Performance Analysis
 
Hadoop Operations: Keeping the Elephant Running Smoothly
Hadoop Operations: Keeping the Elephant Running SmoothlyHadoop Operations: Keeping the Elephant Running Smoothly
Hadoop Operations: Keeping the Elephant Running Smoothly
 
Big server-is-watching-you
Big server-is-watching-youBig server-is-watching-you
Big server-is-watching-you
 
SFBigAnalytics_20190724: Monitor kafka like a Pro
SFBigAnalytics_20190724: Monitor kafka like a ProSFBigAnalytics_20190724: Monitor kafka like a Pro
SFBigAnalytics_20190724: Monitor kafka like a Pro
 
Open Source Tools for Leveling Up Operations FOSSET 2014
Open Source Tools for Leveling Up Operations FOSSET 2014Open Source Tools for Leveling Up Operations FOSSET 2014
Open Source Tools for Leveling Up Operations FOSSET 2014
 
Progress OE performance management
Progress OE performance managementProgress OE performance management
Progress OE performance management
 
Progress Openedge performance management
Progress Openedge performance managementProgress Openedge performance management
Progress Openedge performance management
 

More from Perforce

How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsPerforce
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...Perforce
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Perforce
 
Understanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsUnderstanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsPerforce
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessPerforce
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsPerforce
 
How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog Perforce
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Perforce
 
Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowPerforce
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldPerforce
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterprisePerforce
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMPerforce
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog Perforce
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Perforce
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure Perforce
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Perforce
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Perforce
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Perforce
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4Perforce
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Perforce
 

More from Perforce (20)

How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning Needs
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
 
Understanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsUnderstanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPs
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development Process
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOps
 
How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team
 
Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New Workflow
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated World
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALM
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison
 

Recently uploaded

why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 

Recently uploaded (20)

why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 

Tips from Support: Always Carry a Towel and Don’t Panic!

  • 1. Tips from Support: Always Carry a Towel Don’t Panic! Tim O’Mahony Senior Manager of Support and Development, Perforce Software
  • 2. 2 A hitchhikers guide to Helix issues  Nothing Happened  “Funny”…  Vogon Poetry  Don’t Panic  The Babel fish  Solving Issues with potatoes  42
  • 4. “For a moment, nothing happened. Then, after a second or so, nothing continued to happen.”
  • 5. 5 Nothing Happened…  What is the “Baseline” of your Server?  Questions to ask yourself • How fast should Commands should come back? What’s a reasonable time for my server? • Errors aren’t happening? What errors can I ignore? • What’s my normal load averages? CPU;RAM;I/O • How quiet are my end users?  What do you consider normal?
  • 8. “Funny, how just when you think life can’t possibly get any worse it suddenly does.”
  • 9. 9 Funny…  What is now not normal?  When?  Where is something broken? • Server side? • Client side? • Network?  What is the actual error?  What does the user say is happening?
  • 10. 10 Funny…  Operating System vs Perforce Perforce client error: Connect to server failed; check $P4PORT. TCP connect to asoida:1666 failed. Name or service not known Perforce client error: Connect to server failed; check $P4PORT. TCP connect to 10.3.0.2:1668 failed. connect: 10.3.0.2:1668: Connection refused vs
  • 11. 11 Funny…  Operating System Perforce client error: Connect to server failed; check $P4PORT. TCP connect to 10.3.0.2:1668 failed. connect: 10.3.0.2:1668: Connection refused
  • 12. 12 Funny…  Operating System Perforce server error: Operation: lbr-SubmitFile Operation 'lbr-SubmitFile' failed. Librarian checkin //depot/dev/tomahony/hitchhickers.txt failed. lock on depot/dev/tomahony/hitchhickers.txt failed open for write: depot/dev/tomahony/hitchhickers.txt,v : Permission denied
  • 13. 13 Funny…  Perforce Errors Submit validation failed -- fix problems then use 'p4 submit -c 835231'. 'check_in_test' validation failed: no error message Client map too twisted for directory list. $ p4 add install install - no permission for operation on file(s). Perforce password (P4PASSWD) invalid or unset.
  • 14. Vogon Poetry The art of understanding the log file
  • 15. “On no account allow a Vogon to read poetry at you”
  • 16. 16 Vogon Poetry  Turn on Verbose logging: • p4 configure set track=1 • p4 configure set server=3
  • 18. 18 Vogon Poetry who client IP version command usage db file access
  • 19. 19 Bad Vogon Poetry --- lapse 908s --- usage 148058+740688us 0+0io 1+0net 0k 0pf --- killed by client disconnect --- rpc msgs/size in+out 0+2/0mb+0mb himarks 32068/2000 --- rpc receive errors, duplexing F/R 0/0 --- db.rev --- total lock wait+held read/write 0ms+0ms/0ms+686780ms --- db.revdx --- pages in+out+cached 131340+0+96 --- locks read/write 1/1 rows get+pos+scan put+del 0+18+269548 0+0 --- total lock wait+held read/write 0ms+0ms/0ms+686753ms --- db.revhx --- pages in+out+cached 118960+0+96 --- locks read/write 1/2 rows get+pos+scan put+del 0+18+2381394 0+0 --- total lock wait+held read/write 0ms+0ms/0ms+686746ms --- db.protect --- total lock wait+held read/write 0ms+165ms/0ms+0ms
  • 20. 20 Bad Vogon Poetry --- lapse 908s --- usage 148058+740688us 0+0io 1+0net 0k 0pf --- killed by client disconnect  Long Lapse times with large CPU usage  Long Database locking --- db.revdx --- pages in+out+cached 131340+0+96 --- locks read/write 1/1 rows get+pos+scan put+del 0+18+269548 0+0 --- total lock wait+held read/write 0ms+0ms/0ms+686753ms  Culprit vs Victim – not all long commands are bad things
  • 21. 21 Vogon Poetry  Knowledge base articles to help you: Interpreting server log files • http://answers.perforce.com/articles/KB/2525 Simple P4D Log Analysis • http://answers.perforce.com/articles/KB/2514 Using the Log Analyzer • http://answers.perforce.com/articles/KB/1266
  • 22. 22 Vogon Poetry  Manage your log files  Tracking and verbose logging can get big very quickly… • no bigger than that.  Consider where you are storing your logs  How much can you store? • 1 day, 2 days, 7 days?  Consider non-perforce logging too as part of your baseline
  • 24. “it has the words DON’T PANIC inscribed in large friendly letters on it’s cover.”
  • 25. 25 Don’t Panic  BTree is corrupt! dbverify • When to run “p4d –xv”? • When should I run “p4d –xx” • p4d –xf • p4 dbverify • p4 dbstat
  • 26. 26 Don’t Panic  -xv vs –xx • Validating db files • Inconsistencies found - jnl.fix files  Not the same thing  Check with support!
  • 27. 27 Don’t Panic Validating db.have **** Checksum mismatch **** possible data corruption Problems Summary: pages which are not connect to tree or freelist pages which are not valid or uninterruptable pages which are visited multiple times in tree and freelist data is out of order - table restore required B-tree does not have consistent level count  p4d –r $P4ROOT –xv • output – as bad as it gets
  • 28. 28 Don’t Panic  p4d –r $P4ROOT –xv; recovery • Checkpoints, checkpoints and checkpoints • p4d –r $P4ROOT –jds –z dump.gz • Grep the journal • Partially restore tables • Is it a secondary index? Can you rebuild using –xx?
  • 29. 29 Don’t Panic  p4d –r $P4ROOT –xx output
  • 30. 30 Don’t Panic  Perforce Schema! See why the tables are related • https://www.perforce.com/perforce/doc.current/schema/index.html
  • 31. Babel Fish Understanding what to do next and why support is asking what it is.
  • 32.
  • 33. 33 Babel Fish  What should I have ready? • Version details (p4 –Ztag info) • Server configurables (p4 configure show) • Server logs (ask for ftp accounts) • Reproduction cases… • The actual “error” • Checkpoints/journals at hand; at least a list of what you have.
  • 34. 34 Babel Fish  Support wants to know the big picture  We want to know what and where you’re going.  We want to know why you you’re doing something  Support wants to know the small details  It’s the small things that count.  These can give the biggest clues but are easily missed
  • 36. “It is a mistake to think you can solve any major problems just with potatoes.”
  • 37. 37 Solving issues with Potatoes  Don’t turn it on and off again  Killing processes can cause worse things to happen  If you must shutdown see Shutting down the Server: http://answers.perforce.com/articles/KB/2580  Who’s running what commands?  Look at p4 monitor; nestat –anp;  Read the full error!  Corruptions – Restore from checkpoints/journals
  • 38. 38 Solving issues with Potatoes  Who changed what and when?  Know your timings of events  Check what started in the logs around those times  Can you back out the change? Does this help?
  • 39. 42 I mean, what's 6 times seven?
  • 41. 41 42  Going forward  Server log, storage, know what errors you see  Steps to take  Create baselines  Thinks to consider  Disaster Recovery
  • 42. 42 42  Creating Baselines • Df • sar • iostat • vmstat • Mpstat  Regular Intervals for all commands  Nagios plugins
  • 43. 43 42  Iostat • Iostat without any argument displays information about the CPU usage, and I/O statistics about all the partitions on the system as shown below.
  • 44. 44 42  vmstat • vmstat by default will display the memory usage (including swap) as shown below.
  • 45. 45 42  vmstat • Procs – r: Total number of processes waiting to run • Procs – b: Total number of busy processes • Memory – swpd: Used virtual memory • Memory – free: Free virtual memory • Memory – cache: Memory used as cache. • Swap – si: Memory swapped from disk (for every second) • Swap – so: Memory swapped to disk (for every second) • IO – bi: Blocks in. i.e blocks received from device (for every second) • IO – bo: Blocks out. i.e blocks sent to the device (for every second) • System – in: Interrupts per second • System – cs: Context switches • CPU – us, sy, id, wa, st: CPU user time, system time, idle time, wait time
  • 46. 46 42  Mpstat • By default mpstat displays CPU statistics • Option -P ALL, displays all the individual CPUs (or Cores) along with its statistics as shown below.
  • 47. 47 42  Nagios Plugin  Written by Karl Wirth, UK Tech Support • Available in the workshop https://swarm.workshop.perforce.com/files/guest/karl_wirth/Nagios
  • 48. So long, and thanks for all the Fish! https://www.perforce.com/support-services Tim O’Mahony tomahony@perforce.com