IP Library › Granted Patent US 12,333,448
Granted Patent B2
US 12,333,448 · App. 17/188,256 · Granted Jun 17, 2025

Machine-learned model for duplicate crash dump detection

Inventors: Hao Yang (Xi'an, CN); Yang Xu (Xi'an, CN); Yong Li (Xi'an, CN); Hyun Deok Choi (Seoul, KR)
Assignee: SAP SE
G06N5/04G06F16/215G06N20/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,333,448
App. No.
17/188,256
Granted
Jun 17, 2025
Kind
B2
Abstract

In an example embodiment, a machine learned model is utilized for identifying duplicate crash dumps. After a developer submits code, corresponding test cases are used to ensure the quality of the software delivery. Test failures can occur during this period, such as crashes, errors, and timeouts. Since it takes time for developers to resolve them, many duplicate failures can occur during this time period. In some embodiments, trash triggering is the most time-consuming task of development, and thus if duplicate crash failures can be automatically identified, the degree of automation will be significantly enhanced. To locate such duplicates, a training-based machine learned model uses component information of an in-memory database system to achieve better crash similarity comparison.

Claims (37)

1. A system comprising:

at least one hardware processor; and

a non-transitory computer-readable medium storing instructions that, when executed by the at least one hardware processor, cause the at least one hardware processor to perform operations comprising:

obtaining a plurality of crash dumps in a computer system, the crash dumps each comprising a separate file containing information about a crash failure that occurred during operation of a database, the information including one or more function names and one or more parameters;

preprocessing the plurality of crash dumps by removing the one or more parameters from each crash dump in the plurality of crash dumps;

using the one or more function names in each of the crash dumps to identify an individual component of the database for each of the one or more function names;

adding an indication of each of the identified individual components into the preprocessed plurality of crash dumps; and

training a first machine-learned model by feeding the preprocessed plurality of crash dumps and a coefficient indicating a level of component distance into a first machine learning algorithm, the first machine-learned model trained to output a similarity score between two crash dumps using a longest common subsequence from each crash dump, the first machine-learning model basing the similarity score on a coefficient indicating a number of components to consider from a top of a crash dump, component position in the crash dump, and the coefficient indicating the level of component distance, the level of component distance being a measurement of how similar two components are based on similarity of function names of the two components, each component being a software module upon which one or more functions are executed.

2. The system of claim 1 , wherein the coefficient indicating the number of components to consider from the top of a crash dump and the coefficient indicating the level of component distance are learned using a second machine learning algorithm.

3. The system of claim 1 , wherein the database is an in-memory database.

4. The system of claim 1 , wherein the operations further comprise feeding a first and a second crash dump into the first machine-learned model and eliminating either the first or the second crash dump if a similarity score for the first and second crash dumps exceeds a predetermined threshold.

5. The system of claim 1 , wherein the preprocessing further comprises: filtering out a first number of most frequently occurring function names, the first number determined dynamically.

6. The system of claim 1 , wherein the using the one or more function names in each of the crash dumps to identify an individual component of the database for each of the one or more function names includes using a breadth-first search to extract component-file mappings in layered CMakeLists from the database.

7. The system of claim 6 , wherein the using the one or more function names in each of the crash dumps to identify an individual component of the database for each of the one or more function names further comprises combining the component-file mappings with file-function mappings obtained from an abstract syntax tree of the database.

8. A method comprising:

obtaining a plurality of crash dumps in a computer system, the crash dumps each comprising a separate file containing information about a crash failure that occurred during operation of a database, the information including one or more function names and one or more parameters;

preprocessing the plurality of crash dumps by removing the one or more parameters from each crash dump in the plurality of crash dumps;

using the one or more function names in each of the crash dumps to identify an individual component of the database for each of the one or more function names;

adding an indication of each of the identified individual components into the preprocessed plurality of crash dumps; and

training a first machine-learned model by feeding the preprocessed plurality of crash dumps and a coefficient indicating a level of component distance into a first machine learning algorithm, the first machine-learned model trained to output a similarity score between two crash dumps using a longest common subsequence from each crash dump, the first machine-learning model basing the similarity score on a coefficient indicating a number of components to consider from a top of a crash dump, component position in the crash dump, and the coefficient indicating the level of component distance, the level of component distance being a measurement of how similar two components are based on similarity of function names of the two components, each component being a software module upon which one or more functions are executed.

9. The method of claim 8 , wherein the coefficient indicating the number of components to consider from the top of a crash dump and the coefficient indicating the level of component distance are learned using a second machine learning algorithm.

10. The method of claim 8 , wherein the database is an in-memory database.

11. The method of claim 8 , further comprising feeding a first and a second crash dump into the first machine-learned model and eliminating either the first or the second crash dump if a similarity score for the first and second crash dumps exceeds a predetermined threshold.

12. The method of claim 8 , wherein the preprocessing further comprises: filtering out a first number of most frequently occurring function names, the first number determined dynamically.

13. The method of claim 8 , wherein the using the one or more function names in each of the crash dumps to identify an individual component of the database for each of the one or more function names includes using a breadth-first search to extract component-file mappings in layered CMakeLists from the database.

14. The method of claim 13 , wherein the using the one or more function names in each of the crash dumps to identify an individual component of the database for each of the one or more function names further comprises combining the component-file mappings with file-function mappings obtained from an abstract syntax tree of the database.

15. A non-transitory machine-readable medium storing instructions which, when executed by one or more processors, cause the one or more processors to perform operations comprising:

obtaining a plurality of crash dumps in a computer system, the crash dumps each comprising a separate file containing information about a crash failure that occurred during operation of a database, the information including one or more function names and one or more parameters;

preprocessing the plurality of crash dumps by removing the one or more parameters from each crash dump in the plurality of crash dumps;

using the one or more function names in each of the crash dumps to identify an individual component of the database for each of the one or more function names;

adding an indication of each of the identified individual components into the preprocessed plurality of crash dumps; and

training a first machine-learned model by feeding the preprocessed plurality of crash dumps and a coefficient indicating a level of component distance into a first machine learning algorithm, the first machine-learned model trained to output a similarity score between two crash dumps using a longest common subsequence from each crash dump, the first machine-learning model basing the similarity score on a coefficient indicating a number of components to consider from a top of a crash dump, component position in the crash dump, and the coefficient indicating the level of component distance, the level of component distance being a measurement of how similar two components are based on similarity of function names of the two components, each component being a software module upon which one or more functions are executed.

16. The non-transitory machine-readable medium of claim 15 , wherein the coefficient indicating the number of components to consider from the top of a crash dump and the coefficient indicating the level of component distance are learned using a second machine learning algorithm.

17. The non-transitory machine-readable medium of claim 15 , wherein the database is an in-memory database.

18. The non-transitory machine-readable medium of claim 15 , wherein the operations further comprise feeding a first and a second crash dump into the first machine-learned model and eliminating either the first or the second crash dump if a similarity score for the first and second crash dumps exceeds a predetermined threshold.

19. The non-transitory machine-readable medium of claim 15 , wherein the preprocessing further comprises: filtering out a first number of most frequently occurring function names, the first number determined dynamically.

20. The non-transitory machine-readable medium of claim 15 , wherein the using the one or more function names in each of the crash dumps to identify an individual component of the database for each of the one or more function names includes using a breadth-first search to extract component-file mappings in layered CMakeLists from the database.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2021
From: YANG, HAO; XU, YANG; LI, YONG; CHOI, HYUN DEOK
To: SAP SE
Reel/Frame 055444/0323 →
Continuity (2)
Provisional Application 63086403 · Oct 1, 2020
Related Publication 20220108191A1 · Apr 7, 2022
References Cited (29)
US 20020198921A1 · Jameson · 2002 [cited by examiner]
US 20070283338A1 · Gupta · 2007 [cited by examiner]
US 20090106363A1 · Fallen · 2009 [cited by examiner]
US 20170185467A1 · Xiao · 2017 [cited by examiner]
CN 103235723A · 2013 [cited by examiner]
WO WO2015148328A1 · 2015 [cited by examiner]
Askari, Mina, et al. Towards Understanding System Building. Apr. 5, 2005, pp. 1-13. (Year: 2005). [cited by examiner]
N. Modani, R. Gupta, G. Lohman, T. Syeda-Mahmood and L. Mignet, “Automatically Identifying Known Software Problems,” 2007 IEEE 23rd International Conference on Data Engineering Workshop, Istanbul, Turkey, 2007, pp. 433-… [cited by examiner]
Cupurdija, Michel. Evaluating Methods for Grouping and Comparing Crash Dumps. Jan. 1, 2019. Accessed Apr. 25, 2024. (Year: 2019). [cited by examiner]
Bettenburg, N, “What makes a good bug report?”, Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering, (2008), 308-318. [cited by applicant]
Bettenburg, Nicolas, “Duplicate Bug Reports Considered Harmful . . . Really?”, IEEE International Conference on Software Maintenance, (2008), 9 pgs. [cited by applicant]
Brodie, “Quickly Finding Known Software Problems via Automated Symptom Matching”, The Computer Society, Proceedings of the Second International Conference on Autonomic Computing, (2005), 10 pgs. [cited by applicant]
Deshmukh, Jayati, “Towards Accurate Duplicate Bug Retrieval using Deep Learning Techniques”, IEEE International Conference on Software Maintenance and Evolution, (2017), 115-124. [cited by applicant]
Ebert, C, “Devops”, IEEE Software, vol. 33, No. 3, (2016), 94-100. [cited by applicant]
Farber, Franz, “SAP HANA Database—Data Management for Modern Business Applications”, SIGMOD Record, vol. 40, No. 4, [Online]. Retrieved from the Internet: URL: http: www.sigmod.org publications sigmod-record 1112 pdfs 0… [cited by applicant]
Galler, B A, “An improved equivalence algorithm”, Commun. ACM, vol. 7, No. 5, (1964), 301-303. [cited by applicant]
Jalbert, N, “Automated duplicate detection for bug track-ing systems”, Proc. International Conference on Dependable Systems and Networks With FTCS and DCC, (2008), 52-61. [cited by applicant]
Lattner, Chris, “LLVM and Clang: Next generation compiler technology”, BSD Conference, (May 17, 2008), 33 pgs. [cited by applicant]
Lerch, J, “Finding duplicates of your yet unwritten bug report”, IEEE. Proc. of European Conference on Software Maintenance and Reengineering, (2013), 69-78. [cited by applicant]
Levenshtein, V I, “Binary codes capable of correcting deletions insertions and reversals”, Soviet Physics—Doklady, (1966), 4 pgs. [cited by applicant]
Louden, K, “”, Compiler Construction: Principles and Practice, PWS Publishing, (1997), 591. [cited by applicant]
Runeson, Per, “Detection of Duplicate Defect Reports Using Natural Language Processing”, Proceedings of the 29th international conference on Software Engineering, (2007), 10 pgs. [cited by applicant]
Sabor, K K, “DURFEX: a feature extraction technique for efficient detection of duplicate bug reports”, IEEE international conference on software quality, reliability and security (QRS), (2017), 240-250. [cited by applicant]
Saha, K, “Improving bug localization using structured information retrieval”, Proc. Int. Conf. Autom. Softw. Eng., (2013), 345-355. [cited by applicant]
Schroter, Adrian, “Do Stack Traces Help Developers Fix Bugs?”, Proceedings of the 7th International Working Conference on Mining Software Repositories, (2010), 118-121. [cited by applicant]
Serrano, N, “Bugzilla, itracker and other bug trackers”, IEEE Software, vol. 22, No. 2, (2005), 11-13. [cited by applicant]
Sikka, V., “Efficient Transaction Processing in SAP HANA Database—The End of a Column Store Myth”, SIGMOD, (2012), 731-741. [cited by applicant]
Wang, S, “Version history, similar report, and structure: Putting them together for improved bug localization”, 22nd International Conference on Program Comprehension, (2014), 53-63. [cited by applicant]
Ye, Xin, “Learning to Rank Relevant Files for Bug Reports using Domain Knowledge”, FSE, (2014), 689-699. [cited by applicant]