Comments (3)
Update: This doesn't appear to be an endianness issue but rather has something to do with read overruns in data_files.cc and pos_zone.cc as the field lengths per record are defined by successive reads as opposed to sliced segments. It's more likely to be to do with type definitions on 64-bit versus 32-bit architectures.
from viewtouch.
I'm currently working on this: Confirmed to be an arithmetic error in the base64 encoding scheme used for vt_data. What is happening is that on systems with a exceptionally large long int, the normal behaviour of affecting the sign bit is not occurring as the shift does not even touch it, resulting in very large integers being read place of negative ints smaller than a certain size due to the original encoding scheme being faulty to begin with. I am currently working out how to unmangle the values. Obviously since the shifting behaviour worked in both directions before, this wasn't an issue. It may be the gcc environment, or the machine architecture, I'm not sure. By printlining the load process in manager.cc we find that it's i=200 in the page records in vt_data where it starts to go wrong, and then the fields get out of sync.
from viewtouch.
We now have an internal experimental patch for base64 handling to cure this (temporarily), but we're going to rewrite data_file.cc completely as it needs to load the records properly rather than successively read tokens from the file, and base64 numerical values need to be parsed from vti_data rather than converted directly into integer values. Before going any further, however, if you're having this problem, there may be a quick fix:
Test that the vti_data file that you have isn't corrupt by renaming it to vti_data.txt.gz and decompressing it with gzip. If you see a checksum error, it's got mangled in the download; Gene kindly sent us a vti_data that seems to have fewer loading issues than the one available in vti_updates on viewtouch.com. Try getting a copy of it via e-mail - contact me or Gene and we can send you one.
For developers: Adding a printline to manager.cc that outputs the i loop value for the vti_data loading process with its page number is very helpful to see what's going on. The page id's should be a few hundred negative numbers in descending order to -1. If you see page IDs with massive values (e.g. 6333429556) then it's a base64 maths error which is causing negative integer values to fail to load. This will be fixed in our patched version, which we will aim to have on github at scimatix/viewtouch within the next week.
from viewtouch.
Related Issues (20)
- Broken on FreeBSD: license_hash.cc HOT 9
- The 'install' target fails: file INSTALL cannot find "/usr/ports/misc/viewtouch/work/viewtouch-19.04.1/dat" HOT 4
- Please do not install the 'date' library HOT 1
- Add BSD to CI HOT 1
- [suggestion] You need to segragate read-only vs. writeable directories, and make the installed structure unix-like HOT 2
- Users have to once again Clock In when ViewTouch exits and is restarted. HOT 3
- If running ViewTouch on 64-bit Linux HOT 2
- Android X Server Update: July 10, 2020
- Running GDB (the GNU Debugger): Update
- New Wiki Pages > Building One's Custom Menu and Kitchen/Bar Video HOT 3
- The Unique Advantage of the RPi 4 in the hospitality environment: Mirrored displays
- Formatting issue: An extra line and line feed is issued at the top of some buttons HOT 1
- Code Errors (two) HOT 5
- A couple of small omissions during startup reported in the file: error_log.txt
- Add GitHub Actions for better CI integration HOT 1
- Transfer of user data files in /usr/viewtouch/dat to another Raspberry Pi can cause a program failure HOT 1
- After copying VT /dat to Raspberry Pi, Revenu shows on wrong day HOT 3
- Add GCC 11 to CI build matrix
- Error compiling on Ubuntu 20.04 because of old catch2.hpp HOT 3
- The Discussion Area is now open.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from viewtouch.