Herein I ask for membership for the * Lyx bug-tracker * And the lyx-devel mailing-list. * As stated in https://www.lyx.org/trac/wiki/register2 (Direct access is not possible at the moment)
I REPORTED A SERIOS CRASH problem below.. I am an experience C++ developer and can help to fix the problem. <https://www.linkedin.com/in/frank-haferkorn/> (26) Frank Haferkorn, ErfindER | LinkedIn Greetings, Frank.Haferkorn ?SOLUTION: Do you think it is feasible to compile it as a Win64 and/or using typedef int64_t pos_type ; or find another work-around , that I can go on ? On a 64 bit windows 10 (Intelx64) Platform I am using Lyx-2.4.4 on my own LyX-Created files With * lots of my custom LyX-Macros and (not likely the problem) * with a quite huge size. (likewise the problem) SYMPTOM: I have a SERIOUS PROBLEM with repeated CRASHES about every 1-5 minutes. I THINK I FOUND THE REASON. I traced an integer signed-overflow/sign-wrap-around in an 32bit integer pos_type variable that throws always the same error condition at the code-location. THE SITUIATION: * The MASTER document has about 7 Child-Documents * And at least 2 of the child documents have a size of more than 80 pages of PDF. (800 kB PDPs size) I had a look at the code. The error is ALWAYS thrown here (src/TextMetrics.cpp line 857) int TextMetrics::labelFill(Row const & row) const { Paragraph const & par = text_->getPar(row.pit()); LBUFERR(par.beginOfBody() > 0 || par.isEnvSeparator(0)); ^ /// THIS EXCEPTION OSS THOWN The( ASSERTION criteria beginOfBody() >0 is not met. REASONING: @file stddef.h #define __PTRDIFFF_TYPE__ long int typedef __PTRDIFFF_TYPE__ ptrdiff_t; @file types.h typedef ptrdiff_t pos_type: /// so pos_type has type long int (that is a signed 32 bit long ) The result of: @file Paragraph.h pos_type Paragraph::beginOfBofy() leads to a 32-bit integer pos_type which can be(negative (<0). PROBABLE DETECTED PROBLEM As described, I am editing large LyX-documents. Even, when there are malloced memory elements are only span a region of 4 GB. If the underlying pointer-difference is greater 2GB away That leads to a sign-overflow sign-wrap-around in CASE a ptrdiff_t variable is greater 2GB AS A CONSEQUNCE is a faulty signedness (sign-wrap-around signed ptrdiff _t) And the negative sign in the of par.beginOfBody() > 0 will trigger the assertion criteria (of Textmetrics.cpp Line 857) An produces CRASHES (for some not always reproducible data-chucks. HERE is the ERROR-Message.
-- lyx-devel mailing list [email protected] https://lists.lyx.org/mailman/listinfo/lyx-devel
