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

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

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
 
Oracle Performance On Linux X86 systems
Oracle  Performance On Linux  X86 systems Oracle  Performance On Linux  X86 systems
Oracle Performance On Linux X86 systems Baruch Osoveskiy
 

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

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
 
Oracle Performance On Linux X86 systems
Oracle  Performance On Linux  X86 systems Oracle  Performance On Linux  X86 systems
Oracle Performance On Linux X86 systems
 

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

Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
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
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
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
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 

Recently uploaded (20)

Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
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
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
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
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 

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