Comments (7)
This issue only affect ceph after infernalis, which should be caused by librbd code change.
rbd_open didn't initialize image_wacher for ImageCtx. Later ImageCtx::notify_update uses the pointer and cause segfault.
from go-ceph.
I'm trying to get caught up on go-ceph issues, sorry about the delay. Do I understand correctly that the code works ok before infernalis and is broken after infernalis?
from go-ceph.
how hard would it be to provide a code snipper that reproduces the problem?
from go-ceph.
oh, i'm just using rdb-docker-plugin. didn't actually write the code.
and yes, it works with older version of cepth
from go-ceph.
@noahdesu you are right, this issue won't happen on hammer at least. I also met this issue when using rbd-docker-plugin on recent jewel release. I just made some comments on ceph/ceph#9660 and hope to fix this issue soon.
If you would like to reproduce it, here is a golang code snippet, but pls ensure rbd image is existed before you run this code.
package main
import (
"github.com/ceph/go-ceph/rbd"
"github.com/ceph/go-ceph/rados"
"fmt"
)
func main() {
fmt.Printf("test_librbd\n")
conn, _ := rados.NewConn()
conn.ReadDefaultConfigFile()
conn.Connect()
poolname := "rbd"
ioctx, err := conn.OpenIOContext(poolname)
if err != nil {
fmt.Printf("open pool fails: %s\n", err)
return
}
// ensure rbd image is existed already
imagename := "rbd_image_1"
img := rbd.GetImage(ioctx, imagename)
err = img.Open(true)
if err != nil {
fmt.Printf("fail to open image: %s\n", err)
return
}
defer img.Close()
locker := "test_lock"
err = img.LockExclusive(locker)
if err != nil {
fmt.Printf("fail to lock image: %s\n", err)
return
}
fmt.Printf("lock done\n")
err = img.Unlock(locker)
if err != nil {
fmt.Printf("fail to unlock image: %s\n", err)
return
}
fmt.Printf("unlock done\n")
}
from go-ceph.
Perfect, thanks. That will make things much easier!
from go-ceph.
Hello, I'm automatically closing all issues filed prior to 2018 that have not been commented on recently. If this issue is still relevant to you please reopen the issue and restart the discussion. Thank you for your understanding.
from go-ceph.
Related Issues (20)
- Failed to list images in trash blocks PV cleanup HOT 1
- Mismatched struct Policy vs Bucket in https://github.com/ceph/go-ceph/blob/master/rgw/admin/bucket.go HOT 4
- in-file option not recognized HOT 3
- APIs pending stability updates in v0.23.0
- Support crush manager HOT 4
- Add timeout to Ceph GET API calls HOT 2
- Missing rbd API components: function peer_site_remove HOT 2
- macos m1pro fatal error: 'rados/librados.h' file not found HOT 12
- Image corruption when doing Copy(...) HOT 1
- Potential memory leak on rbd image copy HOT 6
- CI job 'check' emits a warning about go.mod
- rgw: Empty usage problem HOT 3
- TestPingMonitor crashes HOT 6
- Enhance `GetPoolStats()` Method to Include `Num_bytes_available` Field in `PoolStat` HOT 2
- APIs pending stability updates in v0.24.0
- Support bucket scope quota HOT 4
- Add support for rbd_resize2
- Implement subvolume quiesce API HOT 4
- Need squid branch support
- Pacific CI jobs are failing with package dependencies HOT 5
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 go-ceph.