-
Notifications
You must be signed in to change notification settings - Fork 250
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bus error: 10 When darco compression #608
Comments
Interesting, I haven't seen that before. @Kcin1993 could you send the glb to [email protected] and mention this issue in the email? |
@lilleyse Thanks. The email was sent. 😃 |
I got the same bus issue with a specific .gltf file (that was first converted from fbx). The gltf shows 19 errors in gltf-viewer, but it still loads. The specific line is gltf-pipeline/lib/compressDracoMeshes.js Line 264 in 901c94f
What's even worse is that listening to such signal (process.on('SIGBUS', ...) ) causes the whole process to hang -- still don't know why. Here's some minimal js code that reproduces the issue. Remove the process.on('SIGBUS'...) to see the node process crash and show the bus error. const fsExtra = require("fs-extra");
const processGltf = require("./lib/processGltf");
const gltf = fsExtra.readJsonSync("./broken.gltf");
const options = {
dracoOptions: {
compressionLevel: 10,
},
};
processGltf(gltf, options).then(function (results) {
fsExtra.writeJsonSync("model-draco.gltf", results.gltf);
}, function (error){
console.log(error);
});
// not having process.on makes it crash with the bus error
process.on('SIGBUS', (signal) => {
console.log('here', signal);
}) If I force draco 1.3.6, before they disabled the flags NODEJS_CATCH_EXIT and NODEJS_CATCH_REJECTION, I get this error instead (rather than bus error). Could it be a side-effect of google/draco#629 ?
|
The input model is invalid. It contains an accessor that contains When making the model valid, everything works as expected. |
Thanks for the reply and help! While I understand that, I was wondering if gltf-pipeline can perform some specific validation that avoids the bus error to begin with. I wonder if using the gltf validator you linked in the email (https://www.npmjs.com/package/gltf-validator) is a bit too much, as some models with some errors end up working through gltf-pipeline and draco fine. I will give it a try, but most of our users download models from the internet, and they often contain some errors that do not seem to affect the outcome of the pipeline and draco (or some editors can still load them, somehow). For reference, what was the exact accessor with the issue? Edit: I was then also able to view those values through Ceium's glTF Tools vscode extension (https://marketplace.visualstudio.com/items?itemName=cesium.gltf-vscode): |
When I run draco compress. It shows the
Bus error: 10
Here is the script, I ran on the terminal. My node version is v16.13.0.
gltf-pipeline -i room.glb -o compress.gltf --draco.compressionLevel=10
2021-12-08.2.13.58.mov
If it is required to provide the glb file please let me know the email address.
Thanks a lot.
The text was updated successfully, but these errors were encountered: