Comments (2)
tl;dr the offset is from the device and not from the partition.
This took a lot longer to resolve than expected due to us trying to modify the source code and a bunch of other misunderstandings and problems.
Anyways, we went with Ashley's suggested approach to solve this issue.
This is the bio
data for a ramdisk with 1 partition, with the wrapper recording data for the first partition (when we copied over a very small file):
[ 1075.XXXXX] hwm: bio rw of size 1024 headed for 0x109800 (sector 0x84c) has flags:
[ 1075.XXXXX] hwm: bio rw of size 1024 headed for 0x109c00 (sector 0x84e) has flags:
This is the bio
data for a ramdisk with 2 partitions, with the wrapper recording data for the second partition (when we copied over the same file as before):
[17361.XXXXX] hwm: bio rw of size 1024 headed for 0x509800 (sector 0x284c) has flags:
[17361.XXXXX] hwm: bio rw of size 1024 headed for 0x505800 (sector 0x282c) has flags:
We can see that the sector numbers are different (and the difference is about what I'd expect, given that the distance between the first and the second partition was about 4 MB).
It thus seems safe to assume that the bi_sector
is relative to the first sector in the device and not the first sector in the partition.
from crashmonkey.
The work these three have done has also shown that there is two possibilities when it comes to wrapping a device with multiple partitions:
- a user could use
disk_wrapper
to wrap an entire block device with multiple partitions - a user could use
disk_wrapper
to wrap a single partition on a block device with multiple partitions
The current disk_wrapper
seems to have issues with point 2 above (something about trying to access sectors past the end of the device), but Subrat et al. were able to do part 1 above. Since part 1 above creates multiple block devices in disk_wrapper
(one per partition) it make sense that the blocks would be relative to the start of the block device. If we wish to investigate part 2 above, we will need to fix disk_wrapper
and then try giving it only a single partition for the target_device_path
. I suspect that in the case of point 2 above we will see the block address from the start of the partition as disk_wrapper
will only present 1 block device to the system.
from crashmonkey.
Related Issues (20)
- CrashMonkey test faililng due to assertion error in RandomPermuter HOT 1
- insmod ERROR: “disk_wrapper.ko: Cannot allocate memory” HOT 3
- Make multiple instances of CrashMonkey run in a single machine HOT 1
- Have CrashMonkey behave more like a fuzzer HOT 1
- Write an adaptor for Crashmonkey for dm-flakey HOT 2
- ACE fails on fsync HOT 3
- ACE fails on "nested" mode HOT 1
- report two Ace bugs HOT 15
- Build error happening HOT 2
- Failed test cases - "Unable to remove wrapper device" HOT 1
- Port CrashMonkey to Linux 5.6.6
- Update documentation and scripts to reflect changes in xfsMonkey.py for btrfs
- Build error "No such file or directory" on CentOS7 HOT 1
- xfstest adapter produces incorrect output files because of erroring commands
- Memory access violation HOT 1
- False positive tests
- The xfstest does not support _supported_os
- ZFS/OpenZFS support ?
- future bugs to investigate when CrashMonkey is more complete HOT 1
- Clean up logs
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 crashmonkey.