IOException Recurso te
java.io.FileInputStrea
java.io.FileInputStrea
java.io.BufferedInputS
java.io.BufferedInputS
jline.internal.NonBloc
java.lang.Thread.run (
Bye for now!
Slide 30
Slide 30 text
No content
Slide 31
Slide 31 text
No content
Slide 32
Slide 32 text
Tip: “Don’t panic"
Slide 33
Slide 33 text
Reproduce the issue?
vs.
Slide 34
Slide 34 text
Reproduce the issue!
Slide 35
Slide 35 text
Reproduce the issue?!?
Slide 36
Slide 36 text
“Works on my machine”
Slide 37
Slide 37 text
“Works on my machine”
“What is different between our setups?"
Slide 38
Slide 38 text
Tip: “Don’t panic"
Slide 39
Slide 39 text
Tip: “select isn’t broken”
Slide 40
Slide 40 text
Tip: “select isn’t broken”
Slide 41
Slide 41 text
Tip: “select isn’t broken”
Slide 42
Slide 42 text
No content
Slide 43
Slide 43 text
No content
Slide 44
Slide 44 text
Tip: “Don’t panic"
Slide 45
Slide 45 text
No content
Slide 46
Slide 46 text
No content
Slide 47
Slide 47 text
No content
Slide 48
Slide 48 text
No content
Slide 49
Slide 49 text
“Ubuntu has recently pushed
what appears to be a bad kernel
update to Ubuntu 18.04 users.”
Slide 50
Slide 50 text
“After lots of debugging and some
brief discussion on the LKML, it
appears that this is the result of a bug
introduced in Linux on 1 November
2018, and fixed on 9 January 2019.”
Slide 51
Slide 51 text
No content
Slide 52
Slide 52 text
No content
Slide 53
Slide 53 text
No content
Slide 54
Slide 54 text
“have not applied the more recent https://
github.com/torvalds/linux/commit/
d3736d82e8169768218ee0ef687188759180
91a0 patch”
Slide 55
Slide 55 text
Tip: Use search
• Use rare words
• Use rare combinations of words
• Use rare phrases
Slide 56
Slide 56 text
“ Broadly prior to the introduction
of this bug (i.e for the last 5
years), the program would echo
back console input (once enter is
pressed), as expected.”
Slide 57
Slide 57 text
“After the introduction of this
bug, the program immediately
terminates with "Resource
temporarily unavailable".”
Slide 58
Slide 58 text
“I have attached to this email
a very short c program, which
I believe shows the issue.”
Slide 59
Slide 59 text
No content
Slide 60
Slide 60 text
No content
Slide 61
Slide 61 text
No content
Slide 62
Slide 62 text
Tip: Write great bug reports
• Omit everything that’s non-essential
• Include everything that is essential
Slide 63
Slide 63 text
No content
Slide 64
Slide 64 text
“it optimizes fast-path for
tty_reopen(), but more
importantly it won't interrupt
ongoing IO on the tty”
Slide 65
Slide 65 text
No content
Slide 66
Slide 66 text
No content
Slide 67
Slide 67 text
REPRODUCE THE ISSUE!
Slide 68
Slide 68 text
REPRODUCE THE ISSUE!
Slide 69
Slide 69 text
What now?!
Slide 70
Slide 70 text
What now?!
“Not sure if it’s worth trying to
build / release a workaround -
update your kernels if this
affects you?”
Slide 71
Slide 71 text
Best. Comment. Ever.
Slide 72
Slide 72 text
No content
Slide 73
Slide 73 text
What did we learn?
@trptcolin
Slide 74
Slide 74 text
Tip: “select isn’t broken”
Slide 75
Slide 75 text
Search engines are your friends!
Slide 76
Slide 76 text
Ask for help!
Slide 77
Slide 77 text
We’re stronger together
Slide 78
Slide 78 text
Tip: “Don’t assume it - prove it”
Slide 79
Slide 79 text
Tip: “Don’t panic"
Slide 80
Slide 80 text
Recommended resources
• Book by David Thomas & Andrew Hunt: The Pragmatic
Programmer
• Talk by Stuart Halloway: “Debugging with the Scientific
Method”
• Blog by Julia Evans: “What does debugging a program
look like?”
@trptcolin