SlideShare a Scribd company logo
RUN-TIME PATCHING AND UPDATING
IMPACT ESTIMATION
Centre for Research on Engineering Software
Technologies (CREST)
The University of Adelaide
Victor Prokhorenko
Overview
• Patching and updating
• Introduction
• Goals
• Taxonomies
• Existing Runtime Patching Approaches
• Practical challenges
• Features
• Strategies
• Patch Impact estimation
• Current work and preliminary results
• Next steps 2
Terminology
• Dynamic Software Updating (DSU)
• Hotpatching
• Hotfixes
• Live updating
• Live patching
• Run-time patching
• Run-time updates
• Monkey patching
• In our context – patch and update  change
3
Software evolution
• Changes due to: user demands, environment, etc.
• Expectations (wishes): adjusted behavior, consistent data, lack of
disruptions/downtime
• Actions: update, patch
• Common understanding of difference between patching and
updating – small fixes vs. functional changes (sometimes reflected
in versioning systems)
4
Patching and updating
• Software Development Life Cycle-related issues
• Coding, Testing, Delivery, Deployment,
Running
• Traditional software updates
• Write code / Recompile
• Deliver / Deploy
• Stop old code / Run new code
• Offline patch
• Aims to minimise changes
5
Runtime patching
• Difference from offline patching
• Software is running – activities are carried out, resources are in use
• Goals
• Minimize change-to-action delay, minimize disruptions
• Challenges to solve
• Isolate changed code
• Find the location of old code to change
• Find a suitable time to apply the patch
• Take care of currently running operations
• Adjust data to match the expectations of the new code
• Verify new behavior
• Allow roll-back for failed patches
6
Existing taxonomies
7
Proposed taxonomy
• Granularity (What) – Instruction, Function, Library,
Process, Container, VM, Hypervisor, Kernel
• Strategy – (How and when)
• Co-exist & Decay
• Resource Transformation
• Responsible entity (Who)
• Vendor
• User
• Third party
8
Patch life cycle
9
Runtime patch deployment workflow
10
Patch strategies and applicability
11
• State transformation
• Pros: no individual user workflow disruptions
• Cons: slow, not always possible (valid states), manual efforts required, potential
service interruptions
• Co-exist & decay
• Pros: no service interruptions
• Cons: higher overhead (dispatching + cleanup), session or transaction latency
Patch strategies spectrum
12
Patch impact estimation
• Purpose:
• Detect potential issues prior to applying a patch
• Selected granularity:
• Executables binaries and libraries
• “Patchset” considerations
• Impact direction
• Complexity
• Popularity
13
Conceptual patching model
14
Original flow
Expectation
Promise
Conceptual patching model
15
Blind change
Immediately
obvious
expectation
breakage
Conceptual patching model
16
After patching
Fixed expectation
Broken promise
Patch impact estimation
can be performed before
Ubuntu case study: complexity evolution
17
0
50
100
150
200
250
300
350
400
450
500
1 2 3 4 5 6 7 8 9 101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
#
of
occurrences
# of dependencies
Oldest vs. latest Ubuntu version direct dependencies distribution comparison
5.04 21.10
Ubuntu case study: libraries popularity
18
0
200
400
600
800
1000
1200
1400
1600
1800
2000
0 10 20 30 40 50 60 70 80
#
of
imports
# of versions present in
Popularity vs. longevity
Ubuntu case study: direct dependencies
19
ELF binary
Dependencies First
occurrence
Last
occurrence
Versions
present in
First
version
Last
version
Max Min
ximian-connector-setup 100 55 55 100 4 5.04 6.06.1
evolution 94 52 78 52 22 5.04 11.04
exchange-connector-setup 77 11 77 11 18 6.10 11.04
yelp 76 8 43 8 69 5.04 21.10
rhythmbox 75 6 48 6 67 5.04 21.10
totem 72 7 58 7 62 5.04 21.10
sound-juicer 71 38 38 52 12 5.04 8.04.4
evince 70 16 68 16 68 5.10 21.10
totem-video-thumbnailer 69 8 56 8 62 5.04 21.10
evince-thumbnailer 65 7 63 7 68 5.10 21.10
Ubuntu case study: all dependencies
20
ELF binary
Dependencies First
occurrence
Last
occurrence
Versions
present in
First
version
Last
version
Max Min
gnome-control-center 288 47 59 280 52 5.04 21.10
gnome-calendar 169 98 98 157 28 16.04 21.10
gnome-todo 169 146 159 156 18 18.04 21.10
rhythmbox 160 59 59 112 67 5.04 21.10
empathy 159 108 116 159 27 9.10 15.10
empathy-accounts 154 76 117 154 26 10.04 15.10
empathy-debugger 154 61 117 154 26 10.04 15.10
totem 153 67 67 118 62 5.04 21.10
net 152 18 18 152 37 5.04 18.04.4
gnome-shell 148 135 148 140 20 17.10 21.10
Ubuntu case study: libraries popularity
2
ELF library
Dependencies First
occurrence
Last
occurrence
Versions
present in
First
version
Last
version
Max Min
libc.so 2204 1177 1177 1777 69 5.04 21.10
libpthread.so 649 113 242 113 69 5.04 21.10
libdl.so 397 56 290 56 69 5.04 21.10
libm.so 385 174 360 189 69 5.04 21.10
libglib.so 349 235 235 311 69 5.04 21.10
libgobject.so 302 206 206 278 69 5.04 21.10
libX11.so 269 119 130 122 69 5.04 21.10
librt.so 267 5 78 5 69 5.04 21.10
libgio.so 229 32 32 214 62 8.04 21.10
libz.so 215 67 215 78 69 5.04 21.10
Current work: multi-language impact
22
• Python
• import, from … import …, os.system(“python…”), execfile, __import__
• Bash
• source, . , bash, …sh
• PHP
• include, require, include_once, require_once, php.ini
opcache.preload/auto_append_file/auto_prepend_file
• ELF/PE binaries
• Imported functions (Windows and Linux), syscalls (Linux-only)
Future steps: patch impact metrics
23
• Presence: 33% each
• Coverage: Library1 is
twice as “important”
• Occurrence: Library2 has
60% (3 out of 5) of calls
• Usage: highly depends on
value of X and “condition”
(only available at runtime).
Future steps: network-level impact
24
Thank you and
questions

More Related Content

PPTX
What is the merge window?
Macpaul Lin
 
PPTX
Release Cycle Changes
HPCC Systems
 
PDF
2016 09-dev opsjourney-devopsdaysoslo
Jon Arild Tørresdal
 
PPTX
SCM Transformation Challenges and How to Overcome Them
Compuware
 
PPTX
Cognos Performance Tuning Tips & Tricks
Senturus
 
PPTX
Test parallelization using Jenkins
Rogue Wave Software
 
PPTX
Mixing d ps building architecture on the cross cutting example
corehard_by
 
PDF
Continuous delivery @wcap 5-09-2013
David Funaro
 
What is the merge window?
Macpaul Lin
 
Release Cycle Changes
HPCC Systems
 
2016 09-dev opsjourney-devopsdaysoslo
Jon Arild Tørresdal
 
SCM Transformation Challenges and How to Overcome Them
Compuware
 
Cognos Performance Tuning Tips & Tricks
Senturus
 
Test parallelization using Jenkins
Rogue Wave Software
 
Mixing d ps building architecture on the cross cutting example
corehard_by
 
Continuous delivery @wcap 5-09-2013
David Funaro
 

Similar to Run-time Patching and updating Impact Estimation (20)

PDF
Gatehouse software genanvendelse
InfinIT - Innovationsnetværket for it
 
PPT
Chapter1 conventional softwaremanagement (1)
Jkumararaja
 
PPTX
How to overcome challenges in it system evolution
Grupa Unity
 
PDF
FUG Agile software engineering practices
Serena Software
 
PPT
chapter1-convehisudhiusdiudiudsiusdiuddsdshdibsdiubdsjxkjxjntionalsoftwareman...
WrushabhShirsat3
 
PPT
sdfsdfkjsdbusdbiusdhyusdbvyusdgusdbvusdbvyusdv
WrushabhShirsat3
 
PPTX
Monitoring federation open stack infrastructure
Fernando Lopez Aguilar
 
PPTX
Open source: Top issues in the top enterprise packages
Rogue Wave Software
 
PDF
Understanding Android Benchmarks
Koan-Sin Tan
 
PDF
Agileand saas davepatterson_armandofox_050813webinar
Roberto Jr. Figueroa
 
PPTX
HOW TO PHYSICALLY DESIGN A COMPUTER BASED INFORMATION SYSTEM
RebekahSamuel2
 
PDF
Keynote VST2020 (Workshop on Validation, Analysis and Evolution of Software ...
University of Antwerp
 
PPT
Ipc feb4
yashnand
 
PPTX
Ship code like a keptn
Rob Jahn
 
PPT
WaterFall Model.ppt
AbhishekKumar526855
 
PDF
Mike Bartley - Innovations for Testing Parallel Software - EuroSTAR 2012
TEST Huddle
 
PDF
Dependable Systems -Fault Tolerance Patterns (4/16)
Peter Tröger
 
PPTX
OOP 2014 - Lifecycle By Design
Wolfgang Gottesheim
 
PDF
Systems Performance: Enterprise and the Cloud
Brendan Gregg
 
PDF
What’s eating python performance
Piotr Przymus
 
Gatehouse software genanvendelse
InfinIT - Innovationsnetværket for it
 
Chapter1 conventional softwaremanagement (1)
Jkumararaja
 
How to overcome challenges in it system evolution
Grupa Unity
 
FUG Agile software engineering practices
Serena Software
 
chapter1-convehisudhiusdiudiudsiusdiuddsdshdibsdiubdsjxkjxjntionalsoftwareman...
WrushabhShirsat3
 
sdfsdfkjsdbusdbiusdhyusdbvyusdgusdbvusdbvyusdv
WrushabhShirsat3
 
Monitoring federation open stack infrastructure
Fernando Lopez Aguilar
 
Open source: Top issues in the top enterprise packages
Rogue Wave Software
 
Understanding Android Benchmarks
Koan-Sin Tan
 
Agileand saas davepatterson_armandofox_050813webinar
Roberto Jr. Figueroa
 
HOW TO PHYSICALLY DESIGN A COMPUTER BASED INFORMATION SYSTEM
RebekahSamuel2
 
Keynote VST2020 (Workshop on Validation, Analysis and Evolution of Software ...
University of Antwerp
 
Ipc feb4
yashnand
 
Ship code like a keptn
Rob Jahn
 
WaterFall Model.ppt
AbhishekKumar526855
 
Mike Bartley - Innovations for Testing Parallel Software - EuroSTAR 2012
TEST Huddle
 
Dependable Systems -Fault Tolerance Patterns (4/16)
Peter Tröger
 
OOP 2014 - Lifecycle By Design
Wolfgang Gottesheim
 
Systems Performance: Enterprise and the Cloud
Brendan Gregg
 
What’s eating python performance
Piotr Przymus
 
Ad

More from CREST (20)

PDF
Mobile Devices: Systemisation of Knowledge about Privacy Invasion Tactics and...
CREST
 
PPTX
Making Software and Software Engineering visible
CREST
 
PPTX
Understanding and Addressing Architectural Challenges of Cloud- Based Systems
CREST
 
PPTX
DevSecOps: Continuous Engineering with Security by Design: Challenges and Sol...
CREST
 
PPTX
A Deep Dive into the Socio-Technical Aspects of Delays in Security Patching
CREST
 
PPTX
Mining Software Repositories for Security: Data Quality Issues Lessons from T...
CREST
 
PPTX
A Decentralised Platform for Provenance Management of Machine Learning Softwa...
CREST
 
PPTX
Privacy Engineering: Enabling Mobility of Mental Health Services with Data Pr...
CREST
 
PPTX
Falling for Phishing: An Empirical Investigation into People's Email Response...
CREST
 
PPTX
An Experience Report on the Design and Implementation of an Ad-hoc Blockchain...
CREST
 
PPTX
Gazealytics: A Unified and Flexible Visual Toolkit for Exploratory and Compar...
CREST
 
PPTX
Detecting Misuses of Security APIs: A Systematic Review
CREST
 
PPTX
Chen_Reading Strategies for Graph Visualizations that Wrap Around in Torus To...
CREST
 
PPTX
Data Quality for Software Vulnerability Dataset
CREST
 
PPTX
Mod2Dash Presentation
CREST
 
PDF
ECSA 2023 Ubuntu Case Study
CREST
 
PDF
Energy Efficiency Evaluation of Local and Offloaded Data Processing
CREST
 
PPTX
Designing Quality-Driven Blockchain Networks
CREST
 
PPTX
Privacy Engineering in the Wild
CREST
 
PPTX
Security Data Quality Challenges
CREST
 
Mobile Devices: Systemisation of Knowledge about Privacy Invasion Tactics and...
CREST
 
Making Software and Software Engineering visible
CREST
 
Understanding and Addressing Architectural Challenges of Cloud- Based Systems
CREST
 
DevSecOps: Continuous Engineering with Security by Design: Challenges and Sol...
CREST
 
A Deep Dive into the Socio-Technical Aspects of Delays in Security Patching
CREST
 
Mining Software Repositories for Security: Data Quality Issues Lessons from T...
CREST
 
A Decentralised Platform for Provenance Management of Machine Learning Softwa...
CREST
 
Privacy Engineering: Enabling Mobility of Mental Health Services with Data Pr...
CREST
 
Falling for Phishing: An Empirical Investigation into People's Email Response...
CREST
 
An Experience Report on the Design and Implementation of an Ad-hoc Blockchain...
CREST
 
Gazealytics: A Unified and Flexible Visual Toolkit for Exploratory and Compar...
CREST
 
Detecting Misuses of Security APIs: A Systematic Review
CREST
 
Chen_Reading Strategies for Graph Visualizations that Wrap Around in Torus To...
CREST
 
Data Quality for Software Vulnerability Dataset
CREST
 
Mod2Dash Presentation
CREST
 
ECSA 2023 Ubuntu Case Study
CREST
 
Energy Efficiency Evaluation of Local and Offloaded Data Processing
CREST
 
Designing Quality-Driven Blockchain Networks
CREST
 
Privacy Engineering in the Wild
CREST
 
Security Data Quality Challenges
CREST
 
Ad

Recently uploaded (20)

PPTX
Odoo Integration Services by Candidroot Solutions
CandidRoot Solutions Private Limited
 
PPTX
Role Of Python In Programing Language.pptx
jaykoshti048
 
PPTX
oapresentation.pptx
mehatdhavalrajubhai
 
PPTX
Why Use Open Source Reporting Tools for Business Intelligence.pptx
Varsha Nayak
 
PDF
Teaching Reproducibility and Embracing Variability: From Floating-Point Exper...
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
PDF
Why Use Open Source Reporting Tools for Business Intelligence.pdf
Varsha Nayak
 
PDF
Jenkins: An open-source automation server powering CI/CD Automation
SaikatBasu37
 
PDF
QAware_Mario-Leander_Reimer_Architecting and Building a K8s-based AI Platform...
QAware GmbH
 
PDF
Exploring AI Agents in Process Industries
amoreira6
 
PPTX
ASSIGNMENT_1[1][1][1][1][1] (1) variables.pptx
kr2589474
 
PDF
Key Features to Look for in Arizona App Development Services
Net-Craft.com
 
PPTX
Visualising Data with Scatterplots in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PDF
Become an Agentblazer Champion Challenge Kickoff
Dele Amefo
 
PDF
Community & News Update Q2 Meet Up 2025
VictoriaMetrics
 
PPTX
slidesgo-unlocking-the-code-the-dynamic-dance-of-variables-and-constants-2024...
kr2589474
 
DOCX
The Future of Smart Factories Why Embedded Analytics Leads the Way
Varsha Nayak
 
PPTX
Presentation about variables and constant.pptx
safalsingh810
 
PPTX
Presentation of Computer CLASS 2 .pptx
darshilchaudhary558
 
PPTX
Maximizing Revenue with Marketo Measure: A Deep Dive into Multi-Touch Attribu...
bbedford2
 
PDF
Wondershare Filmora 14.5.20.12999 Crack Full New Version 2025
gsgssg2211
 
Odoo Integration Services by Candidroot Solutions
CandidRoot Solutions Private Limited
 
Role Of Python In Programing Language.pptx
jaykoshti048
 
oapresentation.pptx
mehatdhavalrajubhai
 
Why Use Open Source Reporting Tools for Business Intelligence.pptx
Varsha Nayak
 
Teaching Reproducibility and Embracing Variability: From Floating-Point Exper...
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
Why Use Open Source Reporting Tools for Business Intelligence.pdf
Varsha Nayak
 
Jenkins: An open-source automation server powering CI/CD Automation
SaikatBasu37
 
QAware_Mario-Leander_Reimer_Architecting and Building a K8s-based AI Platform...
QAware GmbH
 
Exploring AI Agents in Process Industries
amoreira6
 
ASSIGNMENT_1[1][1][1][1][1] (1) variables.pptx
kr2589474
 
Key Features to Look for in Arizona App Development Services
Net-Craft.com
 
Visualising Data with Scatterplots in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Become an Agentblazer Champion Challenge Kickoff
Dele Amefo
 
Community & News Update Q2 Meet Up 2025
VictoriaMetrics
 
slidesgo-unlocking-the-code-the-dynamic-dance-of-variables-and-constants-2024...
kr2589474
 
The Future of Smart Factories Why Embedded Analytics Leads the Way
Varsha Nayak
 
Presentation about variables and constant.pptx
safalsingh810
 
Presentation of Computer CLASS 2 .pptx
darshilchaudhary558
 
Maximizing Revenue with Marketo Measure: A Deep Dive into Multi-Touch Attribu...
bbedford2
 
Wondershare Filmora 14.5.20.12999 Crack Full New Version 2025
gsgssg2211
 

Run-time Patching and updating Impact Estimation

  • 1. RUN-TIME PATCHING AND UPDATING IMPACT ESTIMATION Centre for Research on Engineering Software Technologies (CREST) The University of Adelaide Victor Prokhorenko
  • 2. Overview • Patching and updating • Introduction • Goals • Taxonomies • Existing Runtime Patching Approaches • Practical challenges • Features • Strategies • Patch Impact estimation • Current work and preliminary results • Next steps 2
  • 3. Terminology • Dynamic Software Updating (DSU) • Hotpatching • Hotfixes • Live updating • Live patching • Run-time patching • Run-time updates • Monkey patching • In our context – patch and update  change 3
  • 4. Software evolution • Changes due to: user demands, environment, etc. • Expectations (wishes): adjusted behavior, consistent data, lack of disruptions/downtime • Actions: update, patch • Common understanding of difference between patching and updating – small fixes vs. functional changes (sometimes reflected in versioning systems) 4
  • 5. Patching and updating • Software Development Life Cycle-related issues • Coding, Testing, Delivery, Deployment, Running • Traditional software updates • Write code / Recompile • Deliver / Deploy • Stop old code / Run new code • Offline patch • Aims to minimise changes 5
  • 6. Runtime patching • Difference from offline patching • Software is running – activities are carried out, resources are in use • Goals • Minimize change-to-action delay, minimize disruptions • Challenges to solve • Isolate changed code • Find the location of old code to change • Find a suitable time to apply the patch • Take care of currently running operations • Adjust data to match the expectations of the new code • Verify new behavior • Allow roll-back for failed patches 6
  • 8. Proposed taxonomy • Granularity (What) – Instruction, Function, Library, Process, Container, VM, Hypervisor, Kernel • Strategy – (How and when) • Co-exist & Decay • Resource Transformation • Responsible entity (Who) • Vendor • User • Third party 8
  • 11. Patch strategies and applicability 11 • State transformation • Pros: no individual user workflow disruptions • Cons: slow, not always possible (valid states), manual efforts required, potential service interruptions • Co-exist & decay • Pros: no service interruptions • Cons: higher overhead (dispatching + cleanup), session or transaction latency
  • 13. Patch impact estimation • Purpose: • Detect potential issues prior to applying a patch • Selected granularity: • Executables binaries and libraries • “Patchset” considerations • Impact direction • Complexity • Popularity 13
  • 14. Conceptual patching model 14 Original flow Expectation Promise
  • 15. Conceptual patching model 15 Blind change Immediately obvious expectation breakage
  • 16. Conceptual patching model 16 After patching Fixed expectation Broken promise Patch impact estimation can be performed before
  • 17. Ubuntu case study: complexity evolution 17 0 50 100 150 200 250 300 350 400 450 500 1 2 3 4 5 6 7 8 9 101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 # of occurrences # of dependencies Oldest vs. latest Ubuntu version direct dependencies distribution comparison 5.04 21.10
  • 18. Ubuntu case study: libraries popularity 18 0 200 400 600 800 1000 1200 1400 1600 1800 2000 0 10 20 30 40 50 60 70 80 # of imports # of versions present in Popularity vs. longevity
  • 19. Ubuntu case study: direct dependencies 19 ELF binary Dependencies First occurrence Last occurrence Versions present in First version Last version Max Min ximian-connector-setup 100 55 55 100 4 5.04 6.06.1 evolution 94 52 78 52 22 5.04 11.04 exchange-connector-setup 77 11 77 11 18 6.10 11.04 yelp 76 8 43 8 69 5.04 21.10 rhythmbox 75 6 48 6 67 5.04 21.10 totem 72 7 58 7 62 5.04 21.10 sound-juicer 71 38 38 52 12 5.04 8.04.4 evince 70 16 68 16 68 5.10 21.10 totem-video-thumbnailer 69 8 56 8 62 5.04 21.10 evince-thumbnailer 65 7 63 7 68 5.10 21.10
  • 20. Ubuntu case study: all dependencies 20 ELF binary Dependencies First occurrence Last occurrence Versions present in First version Last version Max Min gnome-control-center 288 47 59 280 52 5.04 21.10 gnome-calendar 169 98 98 157 28 16.04 21.10 gnome-todo 169 146 159 156 18 18.04 21.10 rhythmbox 160 59 59 112 67 5.04 21.10 empathy 159 108 116 159 27 9.10 15.10 empathy-accounts 154 76 117 154 26 10.04 15.10 empathy-debugger 154 61 117 154 26 10.04 15.10 totem 153 67 67 118 62 5.04 21.10 net 152 18 18 152 37 5.04 18.04.4 gnome-shell 148 135 148 140 20 17.10 21.10
  • 21. Ubuntu case study: libraries popularity 2 ELF library Dependencies First occurrence Last occurrence Versions present in First version Last version Max Min libc.so 2204 1177 1177 1777 69 5.04 21.10 libpthread.so 649 113 242 113 69 5.04 21.10 libdl.so 397 56 290 56 69 5.04 21.10 libm.so 385 174 360 189 69 5.04 21.10 libglib.so 349 235 235 311 69 5.04 21.10 libgobject.so 302 206 206 278 69 5.04 21.10 libX11.so 269 119 130 122 69 5.04 21.10 librt.so 267 5 78 5 69 5.04 21.10 libgio.so 229 32 32 214 62 8.04 21.10 libz.so 215 67 215 78 69 5.04 21.10
  • 22. Current work: multi-language impact 22 • Python • import, from … import …, os.system(“python…”), execfile, __import__ • Bash • source, . , bash, …sh • PHP • include, require, include_once, require_once, php.ini opcache.preload/auto_append_file/auto_prepend_file • ELF/PE binaries • Imported functions (Windows and Linux), syscalls (Linux-only)
  • 23. Future steps: patch impact metrics 23 • Presence: 33% each • Coverage: Library1 is twice as “important” • Occurrence: Library2 has 60% (3 out of 5) of calls • Usage: highly depends on value of X and “condition” (only available at runtime).