Code Monkey home page Code Monkey logo

Comments (11)

FlorianReimold avatar FlorianReimold commented on September 25, 2024 1

Can you grab the binary from our CI? You need to be logged in with your GitHub accout, but then you should be able to just download a zip file ubuntu-debian containing the eCAL .deb installer. Here is a link to the Ubuntu 20.04 build:
https://github.com/eclipse-ecal/ecal/actions/runs/4627122057

It's only for amd64, as the arm binaries only come from the launchpad PPA. I hope that's ok.

After unzipping, you can install it with:
sudo dpkg -i eCAL-5.12.0-Linux.deb.

When you later want to go back to the Version coming from our ppa, you can just remove the installed eCAL and install it with apt again:

sudo apt remove ecal
sudo apt install ecal

from ecal.

FlorianReimold avatar FlorianReimold commented on September 25, 2024

Hi @chengguizi,

Thanks for reporting this and especially for providing the sourcecode. That should make it easy for us to reproduce and debug the issue.
But are you sure, you are running on ARM 64, as you mentioned? One of the error messages clearly states x86 and a quick google search told me that the "Vostro-5320" has a regular Intel processor, as well.

Kind regards
Florian

from ecal.

chengguizi avatar chengguizi commented on September 25, 2024

Ahh sorry. I run both on ARM64 and AMD64. Tested on both platforms!

from ecal.

chengguizi avatar chengguizi commented on September 25, 2024

Hi, just to check in, are you guys able to reproduce on your end?

from ecal.

FlorianReimold avatar FlorianReimold commented on September 25, 2024

Hi @chengguizi,

I didn't try to reproduce it, yet, but I checked the source code to see what could cause the alignment issue. I think it is the following line:

m_header_buffer.resize(ecal_magic + sizeof(uint16_t) + header_size);

with:

  • ecal_magic = 4
  • sizeof(uint16_t) = 2
  • header_size = length of additional protobuf header

After the header consisting of those 3 parts (ecal_magic, header_length, proto_header), the user payload is directly appended. There is no padding, so basically the capnproto data is never aligned. It should be easy to add some padding, but we need to make sure, that the proto header can still be parsed.

from ecal.

chengguizi avatar chengguizi commented on September 25, 2024

Ok! That makes sense :)

from ecal.

FlorianReimold avatar FlorianReimold commented on September 25, 2024

@chengguizi : I created a fix that should solve this issue. It is 100% compatible, but that also makes it ugly, unfortunately. Would you be able to test it out and report back, if it fixes the issue for you?

Here is the branch:
https://github.com/eclipse-ecal/ecal/tree/feature/tcp_payload_alignment

from ecal.

FlorianReimold avatar FlorianReimold commented on September 25, 2024

@chengguizi: the branch was accidentally merged to master, already. Could you maybe still test it?

from ecal.

chengguizi avatar chengguizi commented on September 25, 2024

Hi @FlorianReimold Thanks for the effort in fixing it! May I know what is the best way to test this? I have been using binaries all along.

Do I have to uninstall the binary, compile the branch from source, and then install to the system in order to test?

from ecal.

KerstinKeller avatar KerstinKeller commented on September 25, 2024

@chengguizi @FlorianReimold can this issue be closed?

from ecal.

FlorianReimold avatar FlorianReimold commented on September 25, 2024

Yes, let's close it. I hoped that chengguizi would try out the fix, but he didn't.

from ecal.

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.