Giter VIP home page Giter VIP logo

Comments (5)

rikyoz avatar rikyoz commented on June 12, 2024

Hi!
This is strange! Could you please provide the full stack trace of the error?
Thanks in advance!

from bit7z.

psvajaz avatar psvajaz commented on June 12, 2024

This is caused by an abnormal environment. When the volume compression (any compression tool) is set to ZIP, the compression program unexpectedly exits, and the compressed files retained on the hard drive may experience this situation during preview execution.
Due to the compressed files provided by users, there may be various situations. Should error information be provided when unrecognized. Otherwise, there will be a program crash

image

from bit7z.

rikyoz avatar rikyoz commented on June 12, 2024

Thanks for the details!

I am having some difficulties in trying to replicate the problem.
Just to be sure that I correctly understand it:

  • You create a multi-volume/split ZIP archive using any compression tool (e.g., 7z.exe).
  • For some reason, the tool unexpectedly exits before finishing the compression operation, leaving either some missing volumes or possibly some damaged/incomplete volume files.
  • When you try to read the (incomplete/damaged) multi-volume archive using bit7z, you have that unexpected exception.

Did I understand it correctly?

This is strange. In all my attempts at replicating the issue, bit7z correctly reported some data errors while previewing the archive. But I'm probably missing some detail.

The stack trace you provided is even stranger. The operator == of BitInFormat is const noexcept simply because... It should not throw any exception in typical situations and doesn't modify the member variables.
The fact that this is nullptr is even stranger since the operator should have been called on two valid references, not on two pointers.
I'll need to investigate the issue even further.

It would be handy if you could send me the code snippet you're using and, possibly, the multi-volume archive files giving you the issue. If you can't send the latter, don't worry, I understand!

Also, since I recently made some small changes to the format detection code, you might want to test out bit7z from the v4.0.0 branch. Maybe it doesn't have the same issue.

I really appreciate any help you can provide. 🙏

from bit7z.

psvajaz avatar psvajaz commented on June 12, 2024

During the testing process, it was found that if the number of volumes exceeds 8188, an error will occur and the compressed volumes will remain on the disk. When using the program to preview and decompress, this exception will occur

from bit7z.

rikyoz avatar rikyoz commented on June 12, 2024

if the number of volumes exceeds 8188, an error will occur.

Yeah, I will work on a fix for this limit, but not in the stable version v4.0.

When using the program to preview and decompress, this exception will occur

This is strange, because an exception should occur, but it should be a "normal" BitException due to a data error. How many files are compressed in the multi-volume archive? What kind of files are they? And how big are they?

from bit7z.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.