Crashtesting LibreOffice in the backyard
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 542 | |
Author | ||
License | CC Attribution 2.0 Belgium: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/61561 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
FOSDEM 2023195 / 542
2
5
10
14
15
16
22
24
27
29
31
36
43
48
56
63
74
78
83
87
89
95
96
99
104
106
107
117
119
121
122
125
126
128
130
132
134
135
136
141
143
146
148
152
155
157
159
161
165
166
168
170
173
176
180
181
185
191
194
196
197
198
199
206
207
209
210
211
212
216
219
220
227
228
229
231
232
233
236
250
252
256
258
260
263
264
267
271
273
275
276
278
282
286
292
293
298
299
300
302
312
316
321
322
324
339
341
342
343
344
351
352
354
355
356
357
359
369
370
372
373
376
378
379
380
382
383
387
390
394
395
401
405
406
410
411
413
415
416
421
426
430
437
438
440
441
443
444
445
446
448
449
450
451
458
464
468
472
475
476
479
481
493
494
498
499
502
509
513
516
517
520
522
524
525
531
534
535
537
538
541
00:00
3 (number)Function (mathematics)2 (number)Scripting languageComputer fileoutputDirectory serviceData compressionWebsiteResultantEmailModule (mathematics)CodeImage registrationInternet forumCloningParameter (computer programming)Repository (publishing)Core dumpFile formatLoginCrash (computing)Integrated development environmentShared memoryVariable (mathematics)MereologyCompilerSet (mathematics)Default (computer science)Thread (computing)BefehlsprozessorRevision controlPhysical systemSpacetimeMiniDiscSlide ruleUniform resource locatorSource codeMessage passingDistribution (mathematics)BacktrackingSoftware developerProcess (computing)Perspective (visual)Branch (computer science)10 (number)Electronic mailing listError messageOffice suiteSoftware bugBitVirtual machineServer (computing)Software testingFunction (mathematics)DiagramLecture/Conference
09:25
Program flowchart
Transcript: English(auto-generated)
00:05
Okay, hello, I'm Gabor Kellermann from Alotopia at Myanmar and I would like to talk about how we do crash testing in the backyard. So let's start. What is
00:24
even this crash testing? Crash testing is a QA sub-project of TDF and it's run on the master branch around every second week. So what is this testing? It's
00:41
testing continuously opening files, saving them in different formats and reopening of those saved files and make sure that crashes during this workflow don't happen because that's kind of bad for user perspective. And usually
01:04
this process sends a resulting mail to the developers list and interested parties like mostly Kowlan fix those crashes and that's good on master branch but what if the long-term support branches which we maintain for
01:28
customers introduce such errors that would be kind of bad for customers so we wanted to avoid that in the longer run. Okay, so what are the
01:45
prerequisites for this work? You need first some hardware, a beefy system with many CPU threads because there is a lot of files to test and of course a
02:01
bunch of files, tens of thousands and this can be downloaded using scripts in the core repository. Then you need the crash testing scripts themselves, you need to download them and on the beefy system configure
02:21
them to build LibreOffice, run them on the set of files you have just downloaded and also interpret the results. So this is how the beefy system looks in real life. It's nothing entirely in the backyard but on the
02:43
couch let's say. It also needs some 40 CPUs or so and a lot of disk space as well. Next, second step is downloading files. First script is called like this in the
03:08
core repository and this downloads user-made file attachments from public backtrackers such as TDF and Apache OpenOffice, Bugzilla, Linux
03:22
distribution backtrackers and other office software backtrackers such as KOffice, Genumeric and AbiWord. And it has some lovely or less lovely un-user-friendly properties such as you need to install some extra Python
03:41
modules and set an environment variable to tailor for your hardware so that the download happens quite quickly and you need to run it from the download target directory but that's all I gave it at this script.
04:03
Next, second script is our website scraper code like this. It needs also some Python modules. You can add the target directory as parameter and some Microsoft Office themed forums will need registration before this can work
04:24
on them and login data needs to be stored in any format file. Next, getting the crash testing scripts themselves. It's not in the core repository but this other contrib dev tools repository and in the test
04:44
Bugzilla files directory. So how to make sense of that? Configuring the environment is also very important and this is the most difficult part of this talk. So before you start running the scripts you need to confirm over the
05:06
environment with this config file. It needs to be placed on that path. There are some defaults in the dev tools repository but you should override those.
05:27
The most important settings are this compiler version GCC or crank or works the same in this regard but you just need to take care
05:46
that the old version of LibreOffice you want to compile actually compiles with your compiler. You need to set the parallelism, how many CPU threads
06:01
you have. It's with workers environment variable and the most important thing is the paths for this script. So we need the location of the files to test which were downloaded by the two scripts two
06:25
slides ago and after that you need to hardcode the dev tools repository pass with this TT pass and next is source therefore the LibreOffice core
06:43
repository clone which you also need to compile and you need a build directory where the output of the compression will go. So in the build directory you need also place the autogen input file it's also in the
07:06
dev tools repository. Okay and of course you don't want to send the casual email and upload the results to TDF site because it's internal for the
07:21
company so you need to set these two other two last variables. Okay next it's easy there is a crash test data variable for the downloaded files you need to copy your files there and execute the command command share
07:47
script which will do all the heavy lifting and basically that's all results will be in the crashes data directory under logs and the male txt
08:06
file will be the summary of the run. Next step is finding what went wrong and fix the actual crashes which is just casual backporting bug fixing. So
08:26
what are gains of upstream from this work there are some I made these scripts a lot more configurable so you can set them up more easily for
08:43
other companies. Before that it was only fixed only able to run on the TDF server and it was a kind of a pain to transplant it to another
09:01
machine. Also a little bit of performance gain there was a bottleneck and upstream also can run this work more quickly. And that's all thanks for the attention