质控/二进制二分查找(Bibisect)

From The Document Foundation Wiki
< QA
Jump to: navigation, search
This page is a translated version of the page QA/Bibisect and the translation is 74% complete.

Outdated translations are marked like this.
Other languages:
dansk • ‎English • ‎Bahasa Indonesia • ‎日本語 • ‎русский • ‎中文(简体)‎

简介

二进制二分查找(Bibisect,即 "binary bisect"),是一整套在软件中定位导致了某项功能“倒退(Regressions)”的源代码提交(commit)的方法。“倒退”问题是软件开发以及质量控制中最应该避免的错误,它是指在原来的版本中表现完好的某项功能,在后续的版本中缺却突然无法使用或者无法正常工作的现象,这通常是由于在之前能正常工作的版本与最近不能正常工作的版本之间,存在一个或多个有缺陷的源代码提交。我们需要尽早发现“倒退”问题,并尽快定位导致该问题的有缺陷的源代码,这是因为在问题出现的早期通常会很容易定位该问题,但是时间过的越旧,查找它就会越困难。

Bibisect 二进制二分查找原理

每个 bibisect 软件包(或者称为 bibisect 仓库)其实都是一个 git 仓库,该仓库中包含了成百上千个(次)从源代码编译的 LibreOffice 二进制程序,这些二进制程序在放入该 git 仓库时是按照对应的源代码提交先后顺序排列的。按照这种方式组织的 LibreOffice 二进制包的集合,是我们在多个版本中定位导致某个“倒退”问题源代码的绝佳方式。有了 bibisect 仓库,我们在测试时不需要每次切换到某个版本之后运行程序时重新编译源代码了。

采用这种方式,我们一方面可以使用 git 本身的二分查找工具(即 git bisect)直接基于二进制程序进行二分查找,另一方面又能受益于 git 对文件系统良好的差分压缩、去重以及文件组织方式。例如,一次完整的 LibreOffice 源代码编译后生成的二进制可执行程序至少会占用500MB磁盘空间,但是如果采用 git, 则虽然第一次添加占用的空间相同,但是后续每次添加产生的增量磁盘空间可能只有 25MB 大小。

您可以观看一部 Youtube 视频(墙外): Effective Bisection and Bibisection (Matthew Francis 于2015年在LibOCon上的演讲),它介绍并实际演示了使用 bibisect 仓库进行二进制二分查找的过程。

详情

一次成功的“二进制二分查找”(bibisect)会将导致“倒退”问题的可能源代码范围缩小至很少的几个commit,开发者可以从这个小范围内迅速找到引起“倒退”问题的真正“罪魁祸首”。 Bibisect 之后,QA 团队可以进行额外的步骤进行 bisect,从而将范围缩小到某个具体的源代码 commit, 或者将这项任务留给开发者完成。通常情况下,只要进行了成功的 bibisect, 则找到具体的导致“倒退”问题的具体 commit 会非常容易。

使用不到 10G 的 bibisect 仓库,您可以用于成百上千个编译后的 LibreOffice 版本进行测试。通常情况下完成一个 bibisect 二分查找过程只需要不到15分钟。

当前,“二进制二分查找”可在以下操作系统上进行:

涵盖的源代码范围及构建数章节所示, 取决于您所用的 bibisect 仓库,其涵盖的源代码 commit 范围,对于类似“43max”这样的仓库可能是80个一次构建(某些仓库可能达到几百个);而对于比较新的仓库,可能每隔1个或2个 commit 就有一次构建。(还有一些比较“粗糙”的仓库只是对每次的已发布版本 + beta 版本 + RC 版本进行了构建,这些仓库可能每个二进制构建涵盖上百个源代码 commit)。

当找到了commit范围后,您所测试的 bug 就可以标记关键词 "bibisected";进一步,如果找到了具体的 commit 之后,就可以再添加 "bisected" 关键词。

一般性说明

对于初学者,我们建议大家从已经完成了 bibisect 过程的示例中进行学习。为此,我们准备了Bibisect 入门教程

注意:二分查找的过程在不同的操作系统下会有差异。请阅读上面的链接中针对您的操作系统的指南,那里有非常详细的解释说明、视频以及其他资料。

“二进制二分查找”仅需要6个简单的步骤即可完成:

  1. 搭建环境,包括安装必要的软件。
  2. 下载 bibisect 仓库(其实质是集合了很多 LibreOffice 二进制包的 git 仓库,仓库中的每个commit对应的对 LibreOffice 源代码的一次编译)。
  3. 使用该 bibisect 仓库对 bug 进行二分查找。
  4. 获得二分查找的日志。
  5. 将日志附加到 bug 报告中。
  6. 更新 bug 报告的相应字段。
  7. 移除 keyword 字段中的 'bibisectRequest' 关键词,并添加 'bibisected' 关键词。
  8. 如果已经知道了究竟是哪个 commit 导致了问题,请同时添加 'bisected' 关键词,并将对应的开发者添加到 CC 列表中,并添加评论:'Adding Cc: to <开发者的名字>'

需要注意的是,您应当将最初的代码提交者(committer)添加到 CC 列表,而不是审阅者(Reviewer)。如果某个开发者已经不再参与这个项目了(您可以检查他/她最后一次提交commit的日期来判断),那么就没有必要将任何人添加到 CC 列表,此时您应当提高这个 bug 的优先级。

Some bibisect repositories have ranges of source commits folded into a single chunk. If after completing a bibisect you are presented with only a single one of these chunk commits, you can get the range by first copying the hash (note: not the source hash) and using it in a git log command like so:

git log c3f9dc54188b316a61dd871b63734d49b05f5d7f

现在,您可以复制第一个和前一个显示的二进制 commit 对应的源代码散列值(source hash),并构造出类似下面的查询: https://git.libreoffice.org/core/log/7c4d3ea6ba4d42b4dda5148a00c8c411b5d7703d..5b195fbcf7a441aeb193f6abd08b877e580938e0 得到这个范围之后,您就能通过范围内源代码 commit 的描述和变化内容来进行更深层次的筛查。见:深层次筛查部分的内容

限制

要进行 bibisect,您必须已经下载了针对您的操作系统的二进制软件 git 仓库,并且该仓库覆盖了合适的 LibreOffice 源代码 commit 范围。在这方面,我们在 GNU/Linux 操作系统下覆盖很全面。我们正在努力完善 Windows 和 macOS 下的覆盖度。

Some regressions are difficult to reproduce, and may require multiple test runs for a bug to appear. As you may imagine, trying to bibisect such regressions is very difficult, and requires one to perform many test runs after each checkout of a new version of LibreOffice to give some security / statistics that the bug is indeed present or not present with the given version.

We do not currently have bibisect support for

版本

Bibisect 仓库的版本包含在了不同的操作系统相关的介绍里,请见上面的 #详情 部分。

无法进行 Bibisect 的 bug

有一些 bug 无法进行 Bibisect,这包括:

  • Bugs that don't show up on a supported platform (see #Limitations)
  • Bugs that predate our bibisect builds (We're working on extending the range covered)
  • Bugs that depend upon build options not enabled in the TDF builds (e.g. -kde)

If a bug with bibisectRequest Keyword is found to be not bibisectable, leave a comment on the bug explaining why we're not able to use bibisect to track down the introduction of this problem, and replace Keyword bibisectRequest with notBibisectable.

找到 bug

找到需要进行“二进制二分查找”的 bug

包含以下关键词 bibisectRequest 的 bug 需要进行“二进制二分查找”:

Full Query
ID Summary Priority Status
56894 FORMATTING: Cell borders drawn using (python) scripts do not draw as expected in all cases medium NEW
62093 VIEWING of preview in Print Dialog destroyed after horizontal or vertical resize medium NEW
70633 Writer EDITING: Unable to use AltGr to produce supplementary plane chars medium NEW
75218 Letter Wizard does not respect locale anymore medium NEW
79452 Themes with a separator line per toolbar incorrectly places separator line at bottom when toolbar docked at bottom low NEW
81593 Regression: thumbnails in gallery have poor resolution and excessive enlargement when the vector source has small dimensions medium NEW
81757 Calculations order do not follow cell dependencies medium NEW
92880 CopyFromRecordset function not working since 4.x medium NEW
92909 UI - Table creation field data types are displayed in rounded buttons that do not fill grid cell (OSX only) low NEW
93890 FILEOPEN clean-up of bookmark-start and -end breaks references medium NEEDINFO
94113 Accessible focus event missing when caret moves to start of paragraph spanning two pages (see comment 11) medium NEW
95191 Forms and dialogs opened via macros on ODB file open no longer work high NEW
96176 DRAW: Slow performance zooming an SVG after opening medium NEW
96310 LO will hang for 30 plus seconds after opening EMR software alongside the LO suite (1 processor fully consumed) medium NEW
96341 Version 5.1 takes a lot more RAM than version 5.0 in Windows medium NEW
97790 [pyuno] unavailable exported functions and attributes medium NEW
98491 Split hsqldb Base application will not start under OSX10.11.x causes LO to freeze requiring force kill high NEW
100961 After inserting Fixed Date, and saving in DOC format, the date is not fixed anymore medium NEW
101376 Wordcount Beanshell macro execution causes deadlock / hang requiring forced kill high NEW
101379 UI - (on high resolution screens) text cursor is too thin and so nearly invisible medium NEW
103375 MAILMERGE: unpredictable failures: sometimes looses embedded image, or not all mails sent, when e-mailing as pdf medium NEW
103570 Java not selected automatically when a database is opened for the first time low NEW
105314 EDITING autofilter mixes "…" - 'ellipsis symbol', and "..." - 'three single dots' and produces partial result | was: Filter finds not all cells medium NEW
106484 UI: Print Properties Device tab dropdown items not applied or remembered medium NEW
106831 Can't print #10 envelopes properly and with proper orientation medium NEW
106981 The Repeat feature when you select an Inserted Video for it to play in a Loop during a slideshow no longer works (64-bit only) medium NEW
107987 EDITING: Resizing an image is slow depending on slide design medium NEW
109090 Lang pref English (USA) shows as French (France) in spell checker dialogue (macOS only) high NEW
111415 Wrong rendering of checkbox control properties when change TriState field medium NEW
111674 Always office:value="0" for field variable "Formula", which is <text:expression> in file format high NEW
112811 FILESAVE: DOCX - Dots separator in index not fully preserved medium NEW
113673 Filter WMF: fix for WMF images is not adopted by Slide Show mode (LO 6 Alpha 1 only) medium NEW
114272 [macOS] Some Asian characters are garbled with western fonts. medium NEW
114602 Query-Editor: No functions available for Sqlite 3 odbc high NEW
115077 Merge mail wizard send empty images by mail in HTML format medium NEW
116547 Export of mathematical formula in Writer document to DOCX is displayed incorrectly in Word medium NEW
117255 EDITING: Star Obj Descr (XML) Resize preview is sometimes inconsistent medium NEW
117818 CHAPTER NUMBERING DIALOG: Preview doesn't work as expected (steps in comment 1) medium NEW
118748 Accessibility events missing when Calc cells become unselected due to navigating to focused cell medium NEW
119139 Mysql timestamp fields not displayed in table data entry mode with mysql jdbc-connector ConnectorJ 8.x high NEW
119366 FREEZING with long and complex documents medium NEW
119724 MacOS: Large delay before the red spell checker lines show up after pasting the same content multiple times. Lots of time spend in Scheduler::ProcessTaskScheduling() medium NEW
120014 MacOS: Lots of unresponsiveness (beachballs) when enabling automatic spell checking in a large document high NEW
120154 High RAM usage ( around 300mb for 10 mins and drop to 150-200 mb) medium NEW
120358 Long multi-layered numbered list in a table became mis-ordered after some editing medium NEW
120360 Draw extremely slow when table is added medium NEW
120440 Memory usage is increasing rather fast when creating lots of empty documents (45) and pasting a plain text in it medium NEW
120646 Handling of columns in section not correct medium NEW
120796 Attempting to open a ".txt" file with Calc selected from Windows explorer "Open with", opens Writer instead medium NEW
121092 Libreoffice 6.1.3.2 does not allow saving Advanced Properties options with SQLITE 3 over ODBC medium NEEDINFO
121860 System slows down (freezes) while marking/selecting a lot of single cells by Ctrl+Left Mouse Click medium NEW
122206 FILEOPEN: Opening XML file with XSLT filter opens with plain text import dialogue medium NEW
122381 LibreOffice Writer Menu and Toolbar Freezes for 5-10 Seconds when help pack is installed medium NEW
122419 AutoFilter Search Freezes Calc in the Attached Spreadsheet medium NEW
122585 Classification: by using the dialog, footer text from policy is not placed in the document - it is the same as the header medium NEW
122586 Classification: by using the dialog, Watermark text from policy is not placed in the document medium NEEDINFO
122779 FILEOPEN (BASE) Connection to Oracle DB via ODBC ends in [ODBC][ORACLE] Optional Feature not implemented medium NEEDINFO
122952 Writer typing lag when editing text while header image is showing on screen medium NEW
122968 Stuttering/ judder while scrolling using page down (pages per second rate has worsened) medium NEW
123167 BASIC: Pictures in buttons are not persistent in a dialog medium NEW
123234 Missing characters while exporting to PDF using certain fonts (IM fell from arch user repository) medium NEW
123418 Showing all comments takes longer compared with 4.4.7.2 (Win-only) medium NEW
123419 Scrolling around in a document with lots of comment shown very slow compared to 4.4.7.2 medium NEW
123466 Suspicious Log Messages about String comparison medium NEW
123555 Table of Content link tooltip renders blank squares instead of Chinese characters in Word openxml document (macOS-only) high NEW
123633 Web view and hide whitespace causes view position to jitter until entire document is reformatted medium NEW
123700 Adding selection mode is unreliable, clearing selections instead of adding medium NEW
123844 Groupedbar compact almost empty on MacOS high NEW
124000 FILEOPEN DOCX Last row of OLE object table is missing because rows taller in LO medium NEW
124104 LibreOffice Base: Text cut off in GUI elements with font scaling enabling or when font size increased above 12 point medium NEW
124213 A recovered document has "(Remote)" in the title medium NEW
124214 Fuzzy rendering of a FontWork after some stressing medium NEW
124852 Heading characters much too big when copy-paste as GDI metafile medium NEW
125487 Small delay when closing a simple document containing fontwork with pattern fill medium NEW
125596 DOCX: Writer misidentify text language (and appropriate font) in MS Word file (MSO2019) medium NEW
125641 Slow scrolling responsiveness after saving a file with lots of comments medium NEW
126094 CRASH closing LibreOffice while progress bar dialog is displayed medium NEW
126099 Arc tool goes crazy when drawing proportionally medium NEW
126352 “Create Style” Dialogue Does not Work Correctly if Opened via Menu or Toolbar: (often/always) shows other styles than the 'own styles', sometimes inactive when it shouldn't .. medium NEW
126750 Macro not working .xlsm medium NEW
126881 CRASH: Closing LibreOffice while file in frame is being loaded medium NEW
126961 Cannot link to macOS address book - crashes and restarts high NEW
127184 AUTO CAPTION: Problems with Image Caption “Figure” in German UI medium NEW
127310 Base/BASIC: RectangleShape object does not display an image by setting its FillBitmap medium NEW
127629 UI: Question to open links when opening a master document in English but different UI language medium NEW
127665 Address Datasource Wizard shows incorrect list of possible datasource types when compared to File> New >Database> connect to exising database medium NEW
127699 trail left by objects while dragging them with arrow keys in LibreOffice Impress medium NEW
127790 Slide Show mode black screens if a zero width zero height image is inserted on slide medium NEW
127833 Field shading in comments not properly refreshed medium NEW
128498 OPTIONS DIALOG: "Update Links when Loading" doesn't work for sections medium NEW
128580 Copy text from Word is pasted as an image in Mac OS medium NEW
129180 UI Print dialog shows incorrect paper size by default medium NEW
129898 Drawings during presentations wouldn't be shown when setting "mouse pointer as pen" in the slide show settings medium ASSIGNED
130972 FILESAVE "Edit filter settings" grayed out / not accessible in "Save as" dialog of both Calc and Writer medium NEEDINFO
131100 : Link to external .ods file returns incorrect data medium NEW
131620 Unable to enter accented characters in Calc, Page properties, Header (Linux-only) medium NEW
131634 Crash in sd::View::SdrEndTextEdit(bool) medium NEW
132207 Scrolling a selected table with lots of cells slow (comment 3) medium UNCONFIRMED
132417 EDITING ODT: LibreOffice is responding slowly medium UNCONFIRMED
132456 Lots of time spend in SfxBroadcaster::RemoveListener Undoing deleting a row (3/4 minutes) medium NEW
132629 can't spell check using right click in merged cells medium NEW
132679 FILEOPEN DOCX Crash when editing formula inline medium NEEDINFO
132713 FILEOPEN Old base file (*.dbf) created in LO fails to open in 6.4.2.2 high NEW
132714 Crash when deleting table-row used for diagram generation. high NEW
132758 crash swlo!SwNodeIndex::operator!=+5b7a medium NEW
132820 UI: Height input box smaller compared to width (document specific) medium NEW
132900 CUSTOMISE DIALOG: Delay when opening dialog medium UNCONFIRMED
132901 Tools > Options > LibreOffice > Online update does not handle the situation of "online update" feature not being installed gracefully medium NEW
132929 Shape at the wrong position after save and reload caused by undo (see comment 2) medium NEW
132930 Anchor changes from to character to paragraph after undo save and reload medium NEW
132934 Memory usage for viewing presentation has increased from 200 to 300 mb medium UNCONFIRMED
132978 LO Base: Print Form made from query, can't see the records in result.pdf medium NEW
133059 Inserting/Changing header/footer in impress doesn't apply immediately to the current slide medium NEW
133089 MacOS: Some character can't be rendered; square medium NEW
133228 Moving a cell with mouse shows only black dot instead of helpful cell highlightning medium NEW
133355 High memory usage while in presentation mode with large animated gifs medium UNCONFIRMED
133388 Images stacked onto each other are hard to separate (the move in tandem);on insertion on top of each other (see comment 4) medium NEW
133447 Some animations (Zoom, Stretchy...) break animation sequence medium NEW
133660 Changing table styles corrupts table contents medium NEW
133776 No border when dragging columns (MacOS) medium UNCONFIRMED
133959 Image changes position after changing anchor from paragraph to character and dragging the anchor medium NEW
133968 Freeze hang after deleting index and undo with old swx medium NEW
133996 Very slow opening of a ODS with autofilter + conditional formatting medium NEW
134008 Scrolling slows down around WMF images (GDI-only) medium NEW
134014 UI: Styles deck empty under specific circumstances medium NEW
134198 Copy/paste of a doc results in deviating number of pages of the original (in single page view) medium NEW
134201 Crash after pasting several times, then undoing those, then redoing medium NEW
134203 Layout loop medium NEW
134237 Soft edge feature produces lag when scrolling (and mouse-scrolling to zoom) multiple high-resolution images in Draw medium NEW
134324 Scrolling is lagging when rendering images or tables in Ubuntu 20.04 medium NEW
134385 FILESAVE DOCX Don’t add space between paragraphs of the same style not overridden medium NEW
134407 Too narrow preferences dialog medium NEW
134417 Layout loop/freeze after changing anchor from to paragraph to to character medium UNCONFIRMED
134452 Page break disappears after applying table style medium NEW
134489 Paste as RTF substantial slow compared to save as RTF medium UNCONFIRMED
134522 Remove --with-build-version flag medium NEW
134524 FILESAVE DOCX/DOC: Images gone after inserting a gallery object (followed by save & reload) medium UNCONFIRMED
134525 File open/file copy/paste requires 3-4x more memory low UNCONFIRMED
134754 Crash on macOS 10.13 opening local HSQLDB-based odb file in Base on LibreOffice 7 rc1 medium NEW
134788 Inserting a table with 4000-6000 takes a long time to process since 5.1 medium NEEDINFO
134821 Empty pages after pasting multiple times medium UNCONFIRMED
134869 LO Writer: Grey line at the right and bottom when pasting an image - not in Print - only in view medium NEW
134949 FILESAVE/OPEN: Layout changes after file & reload (related to anchoring) medium UNCONFIRMED
134955 Document scrolls to top low NEW
134979 Relative is lost if relative is checked on table tab & go the column tab & press OK medium NEW
134989 FILESAVE RTF: Unexpected insertion of a section medium NEW
135003 Image in exported DOC moves the wrong direction (jump right when pressing down) medium UNCONFIRMED
135010 Memory usage opening and scrolling a DOCX increased from 600 to 1250 MB; still 360 MB in use after close medium UNCONFIRMED
135014 FILESAVE DOCX: Crash after opening and making and edit and save medium NEW
135026 Large arrow images on file save rtf (and missing text) medium NEW
135031 Help files not found (in master) medium NEW
135039 Freeze pasting with track changes enabled medium UNCONFIRMED
135040 Freeze hang after paste medium UNCONFIRMED
135070 Crash clicking cover page while document is still loading medium UNCONFIRMED
135073 Crash of the document recovery window medium NEW
135079 Formatting of simple .RTF one page A4 document completely screwed up medium NEW
135084 Crash on undo ucrtbase abort medium UNCONFIRMED
135092 Images disappearing from document after saving ODT to DOCX (and showing tracking changes) medium UNCONFIRMED
135096 LIbreOffice is showing empty image frames after save to ODT (tracking changes enabled). File reload solves it medium UNCONFIRMED
135097 DOCX: Delete the image caption frame doesn't delete the image medium UNCONFIRMED
135116 Undo accept tracking changes takes +/- 2 minutes to respond medium UNCONFIRMED
135118 Invisible image on wrong page after deleting an image and hiding changes medium NEW
135130 Tracking changes object still available after deleting if recording is on medium UNCONFIRMED
135155 FILESAVE DOCX: Image anchored to character not properly aligned medium NEEDINFO
135164 FILESAVE DOCX: Heading get bullets medium UNCONFIRMED
135166 FILEOPEN RTF: A part is marked as deleted change and should be so medium NEW
135171 FILEOPEN: DOCX: file exported from LibreOffice takes long long time to open medium NEW
135194 Shortcut ALT+Cursor Down not working on database grid dropdown item medium NEW
135202 LO 6.4.6.1 and 7.0.1 fail with error 1045 when accessing MySQL database using native connector high NEW
135205 Crash after deleting some info and undo medium UNCONFIRMED
135206 Lots of layout movement deleting part of a text medium UNCONFIRMED
135229 Freeze/ hang when moving image in a certain path around medium NEEDINFO
135235 FILEOPEN DOCX Shape sizes relative to page is imported with rounding errors medium NEW
135245 FILEOPEN: DOCX: slow opening medium NEW
135255 Undo doesn't restore added content with tracking changes enabled medium UNCONFIRMED
135316 FILEOPEN DOCX: Time to open from 18 to 30-45 seconds medium NEW
135322 FILEOPEN DOC: Text layout after image moving off medium UNCONFIRMED
135324 FILESAVE DOCX: Image and figure caption overlap medium ASSIGNED
135378 FIELD TEXT reintroduced after undo medium NEW
135380 !!br0ken!! error appears for fields medium NEW
135414 Undo deleting ole object previously accessed causes crash medium NEW
135574 Image hidden after selecting image and pressing down arrow key twice medium NEW
135575 Image is going off page (between pages) when anchoring to page medium NEEDINFO
135578 ODT images anchored 'to page', on round trip to OOXML are anchored 'to character' and can't be moved freely medium NEW
135596 FILEOPEN DOCX: Table in footer quirky rendered.. needs multiple clicks to final proper result medium UNCONFIRMED
135618 Image moved with between table cells depend on cell start position and document format (ODT/DOC/DOCX/RTF) medium NEW
135621 FILESAVE DOCX: Frame ends up in footer medium UNCONFIRMED
135634 Frame content invisible for a while when dragged to a new page medium UNCONFIRMED
135641 ListBox in a table control - can't write into the cell without using the mouse medium NEW
135659 Images positioned wrongly after paste RFT undo regular paste medium UNCONFIRMED
135664 One paste of a frame with 1 images, results in 2 images and one frame medium UNCONFIRMED
135699 Image frame and content mismatch when dragging a image frame with wrap so to no wrap medium UNCONFIRMED
135712 Image moves left after changing anchor from to page to paragraph and pressing up medium UNCONFIRMED
135729 Images lost in RTF when saving ODT to DOC and DOC to RTF medium NEW
135732 Cutting image in frame in table saved as DOCX doesn't work medium UNCONFIRMED
135735 Image wrongly positioned after deleting header (fixed at save and reload) medium UNCONFIRMED
135767 Arrow list in table replaced by numbering at redo medium NEW
135778 Characters misplaced in rtl text with fonts "B fontName" medium NEW
135796 FILESAVE DOCX/DOC: Highlighting inside textboxes not exported with a odt to DOC/DOCX conversion medium NEW
135846 Images disappearing of page (or becoming transparent) after moving image medium UNCONFIRMED
135854 Image disappearing of changing page wrap to optimal (paragraph where the 'as character' image is anchored to' is moving up medium UNCONFIRMED
135870 Wrong spelled underlining gone after pressing enter caused by autocorrection capitalize medium UNCONFIRMED
135910 Transparent objects either possess outlines when none are defined or are completely opaque, depending on export PNG options medium NEW
135912 PNG export of text with graphical shadow applied does not output correctly medium NEW
135967 Frames present in navigator, not visible in document (except in 6.0) medium UNCONFIRMED
135976 Anchor to character deleted with backspace at anchor position in bulleted list medium UNCONFIRMED
135981 Wrong formatting when typing (like track & changes involved) medium UNCONFIRMED
135982 Deleting text with backspace slows down heavily medium UNCONFIRMED
136016 Image differently positioned after undo (in bulleted list); different anchor position medium UNCONFIRMED
136017 Image frame background set to white explicitly (instead of non) on DOC export medium UNCONFIRMED
136019 Selecting a frame inside a frame or textbox inside a frame in header/footer is rather cumbersome medium UNCONFIRMED
136035 FILESAVE: DOCX: Frames within frames or textboxes within frames are positioned wrong after DOCX export medium NEW
136040 Undo doesn't restore text in columns (Hebrew?) medium UNCONFIRMED
136059 Filesave DOC/X: Non-square shape with border frame has wrap wrong applied medium NEW
136227 FILEOPEN DOCX with a large table slow (4 seconds ODT 28 seconds DOCX) medium UNCONFIRMED
136245 Page count is terribly off on file open with a large table; ultimately it will work (but seems slower). Fine in 6.0 (Windows Only) medium NEW
136284 Undo steps cut/off broken after RTF paste medium UNCONFIRMED
136287 Certain properties of controls in forms can no longer be edited using keyboard entries. medium NEW
136447 Text flow page break in tristate after CTRL+A Backspace Undo medium UNCONFIRMED
136469 Spell checker Calc not underlining wrong spelled word when copy pasting under certain conditions medium UNCONFIRMED
136473 Slow scrolling/zooming with Skia Raster/Vulkan (follow up on bug 136240) medium NEW
136515 Frame and content disengaged after moving frame followed by cut and paste medium NEW
136623 Textboxes wrongly positioned after on file open medium UNCONFIRMED
136627 Memory usage increases with 200 MB after hovering over file send (java runtime related) medium UNCONFIRMED
136717 Quite some activity on undo deleting a (large) table medium UNCONFIRMED
136749 Undo deleting a large table slow medium NEW
136782 Frame/image duplication after cut & paste in DOCX medium NEW
136806 Redo inheriting formatting from somewhere else medium UNCONFIRMED
136880 Comment anchor selected when clicking at the position where the anchor is shown medium NEEDINFO
136903 Crash swlo!SwRedlineData::SetSeqNo+0xf26: (track changes involved) medium UNCONFIRMED
136930 Empty image frame after undo reject all medium UNCONFIRMED
136940 A thin vertical line is visible in presentation mode (Skia & GDI and OpenGL) low NEW
136991 open a rtf-file with colored text medium NEW
137055 Image gone after undo multiple times (track & changes involved) medium NEW
137073 Changing anchor position of image and undo does not restore the image's original position medium NEW
137173 Document with hyperlinks hangs medium NEW
137387 UI graphical artifacts in macOS medium NEW
137633 Drag handle not shown for textbox in DOCX medium UNCONFIRMED
137638 No thumbnail preview in start center of specific docx document medium NEW
137662 When combo box (and List box) from Base is located in a data sheet, it ha to be clicked twice in order to be able to enter text medium NEW
137735 FILESAVE: Chart defects when reopening : loss of backwards compatibility medium NEW
137781 Image frame still present after cut (with tracking changes enabled) medium UNCONFIRMED
137786 Crash swlo!SwNodeIndex::~SwNodeIndex+0x18 medium UNCONFIRMED

243 Total; 243 Open (100%); 0 Resolved (0%); 0 Verified (0%);


另外, 所有的 LibreOffice 中尚未解决的“倒退型” bug 如果能进行“二进制二分查找”的话会很有帮助。

找到已经完成了“二进制二分查找”的 bug

请见 这里.

加入以上信息之后,开发者会知道这个“倒退”问题是在 master 分支源代码提交的 fb754a0df859e30255c25af8fa19bfaa75f257e7 (好) 和 2d19e9bb07ccff3134f855812dddfda5c07b1fe4 (坏) 之间产生的。

git log fb754a0df859e30255c25af8fa19bfaa75f257e7..2d19e9bb07ccff3134f855812dddfda5c07b1fe4

以上 git 命令将会显示 128 个提交,其中就包含了造成倒退问题的那个 bug. 这样,开发者就离修复这个 bug 不远了。 更多信息,请参考:

特殊情况

二分查找与特定语言(比如中日韩语言界面)相关的 bug

您要二分查找的 bug 可能与特定的界面语言相关。比如 tdf#115637,这个 bug 在中文界面上能够100%出现,而在英文界面上从来不出现。在这种情况下,因为 TDF 提供的二分查找仓库中默认没有提供任何语言包,只有英文界面,因此如果不进行改进,就无法二分查找这样的 bug。

如果某个 bug 在英文界面上工作正常,但在非英文界面上有问题(例如中日韩界面),您可以将以下文件从一个包含您的界面语言的常规发布版本中,复制到 bibisect 仓库:

  1. program/resource/<您的语言标记>
  2. share/registry/Langpack-<您的语言标记>.xcd
  3. share/registry/res/fcfg_langpack_<您的语言标记>.xcd
  4. share/registry/res/registry_<您的语言标记>.xcd

复制时,请注意尽量复制主版本号相同的版本中的资源。比如,对于 bibisect-linux-64-6.0 仓库,您可以复制 6.0.1.1 版本中的语言资源。

以单独的“用户配置文件”运行程序

如果想将用户配置文件放到 /tmp/ 临时目录中(该目录下的所有内容将在系统重启后被删除):

./opt/program/soffice -env:UserInstallation=file:///tmp/soffice-bisect

如果想在每次的二分查找中都让 libreoffice 以全新的用户配置文件启动,那么可以将 git commit 的希哈值附加到文件夹名称中,例如:

./opt/program/soffice \
-env:UserInstallation=file:///tmp/soffice-bisect-$(git rev-parse HEAD)

逆向 bibisect(找到修复了某个问题的提交)

Sometimes a bug is a collateral damage of another (possibly minor) bug, in a non obvious way. In such cases that other bug might be fixed on master, but was not backported to the release branch. To identify a problem-fixing commit you can use:

git bisect start --term-new=fixed --term-old=unfixed
git bisect fixed master
git bisect unfixed <some-old-sha> # you can use "git log --reverse" to detect the first revision in the bibisected package

As you test, say

git bisect fixed

or

git bisect unfixed

as appropriate.

If the fix is small and important enough, it likely can be easily backported to the release branch.

根据源代码的 hash 值检出某个特定的提交

有时候,您已经知道,在之前的某个特定的源代码 commit 中不存在您正在测试的 bug。

这种情况下,复制 LibreOffice 源代码 git 历史中的这个 source hash,并用它再 bibisecct 仓库的 log 中进行 grep:

git log --all --grep='29a9f433c268414747d8ec7343fc2b5987971738'

然后复制 bibisect 中的 commit hash,检出这个 commit,然后验证您的假设:

git checkout 38758b70f5278d4d8292a2e857e80a9a1130f38e

然后您可以使用 bibisect 仓库的 commit hash 来决定 bisect 过程中的 bad 和 good 的范围:

git bisect start 38758b70f5278d4d8292a2e857e80a9a1130f38e oldest

在某个 commit 范围内进行侦察

In case your bibisect result is a range of commits and you have trouble locating the offending commit, you might make your life easier by searching with a keyword.

An example for a case, where we know the problem is in Calc's Navigator view:

git log --stat --pretty=short --graph 169bd7718264b0e312052757f9bbd2321e1399c2...ff8b873936aa72b17309da4bfc2775573a5b1f55 | grep -B 10 -A 10 --color=always "sc/source/ui/navipi" | less -R

Adjust the -B and -A grep parameters to control how many lines before and after the hit you want to display. When piping to less, -R preserves the colouring of search results.

Bisect skip(跳过无法运行的 commit)

Sometimes we get stuck in a miserable situation, where we have to use git bisect skip over and over again due to various reasons. There are ways of getting out of these infuriating messes and here we will show one of them.

示例 bug: tdf#123095

Bug 出现在 4.0-4.1 范围内。

这里有太多的与自动筛选(autofilter)无关的 commit 了,因此需要忽略这些。

我们可以使用 git bisect visualize 来显示剩下的有嫌疑的 commits:

git bisect visualize --oneline > /some/path/bisect-viz-123095.txt

顶部显示的是最早的“坏”结果,底下显示的是您已经忽略的内容。再往下显示的是最近已知的“好”结果。

我的顶部结果包括:

  b842ac1 source-hash-7b4d76772ef76a8de852ed647ed0cad368f70189
  40ef04e source-hash-dc173b7f2a550185404aacbc6da744cb6d1880fc
  8e697de source-hash-eb96e4325278f31b9e6fbc1d5c6a01543204ded6

因此,我进行 git checkout b842ac1,测试检出的程序,再继续下一个,重复这个步骤。看起来顶部的第三个是一个可以忽略的提交。

我使用 source hash 按照 bottomcommit..firstbadcommit 的方式构造了一个查询

打开查询界面后,我进而搜索 "filter",然后找到了一个可疑的 commit,这个提交是关于对自动筛选的结果进行排序的。

如果在 bibisect 过程中 soffice 在某个或某几个 commit 下频繁崩溃,让您无法准确判断代码范围,那么 #Tidbits for efficiency 章节提供了解决办法。

使用 bibisect 找到源代码 commit

If bibisect was done, but not likely to be correct or in a repository known to have large range of source commits, we can check the range by finding a previous build commit from the found one and then find the source range.

$ git log -1 1f14665c5624bc7a502738aa8f4f2bd70a211e72^
$ git log --oneline b6c016da23d309b4ac7d154bc33a22397974ed73..d85fd8a85501547d5bb87822d2589a07aed7f2d6

故障排除

Please add your problems and how you solved them. This section covers issues that affect more than one OS. For OS-specific issues, please see the individual OS wiki pages.

无法提取文件

If you can't extract files (you should get an error message). Try to rename the file from *.tar.lzma to *.tar.xz.

已安装的 LibreOffice 被意外修改

问题 / 信息:

   error: Your local changes to the following files would be overwritten by checkout:
     opt/program/pythonloader.pyc
     opt/program/uno.pyc
     opt/program/unohelper.pyc
   Please, commit your changes or stash them before you can switch branches.
   Aborting

解决办法:

git checkout .

will repair the problem. Afterwards you can start the next test run as usual with

git bisect good # or git bisect bad

If that does not solve the problem, you can try

git clean -fd
git reset --hard

The ultimate repair is to delete everything except one

.git/

hidden folder, and do

git checkout oldest

无法启动 soffice

Problem 1: Upon trying to run soffice within bibisect you receive the error "unexpected operator terminate called after throwing an instance of 'com::sun::star::uno::DeploymentException'

Solution: Reset your libreoffice profile located in ~/.config/libreoffice. Make sure to backup the folder if you have any settings you'd like to preserve for use with your stable libreoffice release. After you're done with bibisect you can try to return your backed up profile to it's original location (ie. delete the new profile folder and replace it with the backed up one)

Problem 2: Trying to run soffice within bibisect gives frequent errors such as "Application Error" and skipping via 'git bisect skip' is tedious.

Solution: Upon an error, run one-line script to skip commit on error message and try the next one. Script will stop when soffice is successfully run and then you proceed with 'git bisect good' or 'git bisect bad'. If error is repeated, script can be run again.

 while (git clean -f -X && git bisect skip && ! instdir/program/soffice); do : ; done

如果 bisect RTL(从右向左)类型的 bug

如果想要对 RTL ( Right-To-Left,从右向左) 语言相关的 bug, 在运行 LibreOffice 之前请导入如下的变量:

SAL_RTL_ENABLED=1

如何 bisect 文件恢复类型的 bug

In case you need to bisect File Recovery bugs ( e.g. tdf#129210 ), comment out line OOO_DISABLE_RECOVERY=1 in file instdir/program/ooenv

提高效率

The repetitive nature of bibisecting gets tedious fast, so every trick you can use to make the process quicker is valuable. A typical way is to define aliases for complex commands in your .bashrc file.

The .bashrc of an active bibisecter might include a block such as this:

alias bad='git bisect bad && instdir/program/soffice'
alias good='git bisect good && instdir/program/soffice'
alias skip='git bisect skip && instdir/program/soffice'
alias next='git log --reverse --pretty=%H master | grep -A 1 $(git rev-parse HEAD) | tail -n1 | xargs git checkout'
alias prev='git checkout HEAD^1'
alias gallery='rm instdir/program/gengal'
alias pycache='find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf'
alias source='if [[ $(git log -1) =~ sha:([[:alnum:]]+) ]]; then git --git-dir ~/libreoffice/.git log -1 ${BASH_REMATCH[1]}; fi'
alias sof="\$( if [[ -d instdir ]] ; then echo instdir ; else if [[ -d opt ]] ; then echo opt ; fi ; fi )/program/soffice --norestore --nologo"

We have commands for jumping to the next or previous commit, "pycache" for dealing with a Windows-specific annoyance and finally "source" for quickly displaying source commit information. The command named "source" assumes you are in a bibisect repository, grabs the source hash of the currently checked out commit and feeds it to a git command targeting a full clone of the LibreOffice source code. To get a breakdown of the command, see the Bash Reference Manual.

The above examples are not exclusive to *nix systems, but work fine in a cygwin environment on Windows. If you want to open documents from the cygwin command line, enclose the ordinary Windows path in single quotes like so:

 instdir/program/soffice 'c:\users\test\downloads\example.ods'

更多信息

备注

For details on how the bibisect archives are generated:

We want to make a GUI for bibisect: