The front end must be configured via ceph.conf to start up both the
flight_server and the flight_store. RGWGetObj needs to check for the
existence of a flight_store prior to trying to use it.
Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
FlightFrontend::~FlightFrontend() {
delete env.flight_server;
+ env.flight_server = nullptr;
+
delete env.flight_store;
+ env.flight_store = nullptr;
+
INFO << "flight server shut down" << dendl;
}
}
#ifdef WITH_ARROW_FLIGHT
- if (ofs == 0) {
- // insert a GetObj_Filter to monitor and create flight
- flight_filter.emplace(s, filter);
- filter = &*flight_filter;
+ if (s->penv.flight_store) {
+ if (ofs == 0) {
+ // insert a GetObj_Filter to monitor and create flight
+ flight_filter.emplace(s, filter);
+ filter = &*flight_filter;
+ }
+ } else {
+ ldpp_dout(this, 0) << "ERROR: flight_store not created in " << __func__ << dendl;
}
#endif
#ifdef WITH_ARROW_FLIGHT
// managed by rgw:flight::FlightFrontend in rgw_flight_frontend.cc
- rgw::flight::FlightServer* flight_server;
- rgw::flight::FlightStore* flight_store;
+ rgw::flight::FlightServer* flight_server = nullptr;
+ rgw::flight::FlightStore* flight_store = nullptr;
#endif
};