Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] mdocml: fix hang when rendering stress-ng(1)
@ 2023-06-08 19:40 classabbyamp
  2023-06-09  9:08 ` [PR PATCH] [Merged]: " classabbyamp
  0 siblings, 1 reply; 2+ messages in thread
From: classabbyamp @ 2023-06-08 19:40 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 517 bytes --]

There is a new pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages mdocml-stress-reduction
https://github.com/void-linux/void-packages/pull/44319

mdocml: fix hang when rendering stress-ng(1)
see https://inbox.vuxu.org/mandoc-discuss/ZIIbRuk+yJtoAJhv@asta-kit.de/

cc @leahneukirchen

#### Testing the changes
- I tested the changes in this PR: **YES**



A patch file from https://github.com/void-linux/void-packages/pull/44319.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-mdocml-stress-reduction-44319.patch --]
[-- Type: text/x-diff, Size: 3313 bytes --]

From ee2320c9ce8d005600e25f563ff25d637e835ac9 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 8 Jun 2023 15:38:38 -0400
Subject: [PATCH] mdocml: fix hang when rendering stress-ng(1)

see https://inbox.vuxu.org/mandoc-discuss/ZIIbRuk+yJtoAJhv@asta-kit.de/
---
 srcpkgs/mdocml/patches/stress-ng-hang.patch | 75 +++++++++++++++++++++
 srcpkgs/mdocml/template                     |  2 +-
 2 files changed, 76 insertions(+), 1 deletion(-)
 create mode 100644 srcpkgs/mdocml/patches/stress-ng-hang.patch

diff --git a/srcpkgs/mdocml/patches/stress-ng-hang.patch b/srcpkgs/mdocml/patches/stress-ng-hang.patch
new file mode 100644
index 000000000000..fd6a3a7c0037
--- /dev/null
+++ b/srcpkgs/mdocml/patches/stress-ng-hang.patch
@@ -0,0 +1,75 @@
+fixes hang from rendering stress-ng(1)
+
+from https://inbox.vuxu.org/mandoc-discuss/ZIIbRuk+yJtoAJhv@asta-kit.de/
+
+===================================================================
+RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/out.c,v
+retrieving revision 1.54
+retrieving revision 1.55
+diff -u -r1.54 -r1.55
+--- a/out.c	2021/09/07 17:05:30	1.54
++++ b/out.c	2021/09/28 17:06:17	1.55
+@@ -121,6 +121,7 @@
+ 	const struct tbl_dat	*dp;
+ 	struct roffcol		*col;
+ 	struct tbl_colgroup	*first_group, **gp, *g;
++	size_t			*colwidth;
+ 	size_t			 ewidth, min1, min2, wanted, width, xwidth;
+ 	int			 done, icol, maxcol, necol, nxcol, quirkcol;
+ 
+@@ -254,16 +255,28 @@
+ 			gp = &(*gp)->next;
+ 	}
+ 
++	colwidth = mandoc_reallocarray(NULL, maxcol + 1, sizeof(*colwidth));
+ 	while (first_group != NULL) {
+ 
+ 		/*
++		 * Rebuild the array of the widths of all columns
++		 * participating in spans that require expansion.
++		 */
++
++		for (icol = 0; icol <= maxcol; icol++)
++			colwidth[icol] = SIZE_MAX;
++		for (g = first_group; g != NULL; g = g->next)
++			for (icol = g->startcol; icol <= g->endcol; icol++)
++				colwidth[icol] = tbl->cols[icol].width;
++
++		/*
+ 		 * Find the smallest and second smallest column width
+ 		 * among the columns which may need expamsion.
+ 		 */
+ 
+ 		min1 = min2 = SIZE_MAX;
+ 		for (icol = 0; icol <= maxcol; icol++) {
+-			width = tbl->cols[icol].width;
++			width = colwidth[icol];
+ 			if (min1 > width) {
+ 				min2 = min1;
+ 				min1 = width;
+@@ -281,7 +294,7 @@
+ 		for (g = first_group; g != NULL; g = g->next) {
+ 			necol = 0;
+ 			for (icol = g->startcol; icol <= g->endcol; icol++)
+-				if (tbl->cols[icol].width == min1)
++				if (colwidth[icol] == min1)
+ 					necol++;
+ 			if (necol == 0)
+ 				continue;
+@@ -298,7 +311,7 @@
+ 		while ((g = *gp) != NULL) {
+ 			done = 0;
+ 			for (icol = g->startcol; icol <= g->endcol; icol++) {
+-				if (tbl->cols[icol].width != min1)
++				if (colwidth[icol] != min1)
+ 					continue;
+ 				if (g->wanted <= wanted - min1) {
+ 					tbl->cols[icol].width += g->wanted;
+@@ -315,6 +328,7 @@
+ 				gp = &(*gp)->next;
+ 		}
+ 	}
++	free(colwidth);
+ 
+ 	/*
+ 	 * Align numbers with text.
diff --git a/srcpkgs/mdocml/template b/srcpkgs/mdocml/template
index 4dda1338fc9c..9b9d5394a292 100644
--- a/srcpkgs/mdocml/template
+++ b/srcpkgs/mdocml/template
@@ -1,7 +1,7 @@
 # Template file for 'mdocml'
 pkgname=mdocml
 version=1.14.6
-revision=6
+revision=7
 build_style=configure
 make_build_args="all man.cgi"
 make_check_target="regress"

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PR PATCH] [Merged]: mdocml: fix hang when rendering stress-ng(1)
  2023-06-08 19:40 [PR PATCH] mdocml: fix hang when rendering stress-ng(1) classabbyamp
@ 2023-06-09  9:08 ` classabbyamp
  0 siblings, 0 replies; 2+ messages in thread
From: classabbyamp @ 2023-06-09  9:08 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 340 bytes --]

There's a merged pull request on the void-packages repository

mdocml: fix hang when rendering stress-ng(1)
https://github.com/void-linux/void-packages/pull/44319

Description:
see https://inbox.vuxu.org/mandoc-discuss/ZIIbRuk+yJtoAJhv@asta-kit.de/

cc @leahneukirchen

#### Testing the changes
- I tested the changes in this PR: **YES**



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-06-09  9:08 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-08 19:40 [PR PATCH] mdocml: fix hang when rendering stress-ng(1) classabbyamp
2023-06-09  9:08 ` [PR PATCH] [Merged]: " classabbyamp

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).