Releases: open-iscsi/tcmu-runner
bump version to 1.6.0
This is the 1.6.0 release of tcmu-runner.
Release notes:
- This is mostly a bug fix release.
- liulanzheng has been working on adding support for write protect.
- Thanks all for your hard work on this.
Changes between 1.5.4 and 1.6.0:
JuniorJPDJ (5):
cast time_t to intmax_t when printing
replace assert_perror with assert
add missing pthread.h include
implicitly cast pthread_t to long unsigned int
remove pthread_getname_np calls
Ken Dreyer (1):
spec: make dist tag optional (#659)
Maurizio Lombardi (1):
tcmu_read_config() check read() return value. (#656)
Xiubo Li (15):
install-dep.sh: do not install multiple packages in one single line
(#657)
main: fix g_object_unref: assertion 'G_IS_OBJECT (object)' failed
Create codeql-analysis.yml
rbd: fix use-after-free of addr
Revert "Create codeql-analysis.yml"
rbd: fix memory leak when fails to get the address
rbd: remove the reduntant logs
rbd: fix the possible warning of incorrect return value type
rbd: fix and add more debug logs
tcmur_device: rename lock to cmds_list_lock
tcmur_device: rename the state_lock to rdev_lock
rbd: switch strtok to strtok_r
rbd: switch to blocklist
rbd: make it to be compatible to the old blacklist style
Bump version to 1.6.0
liulanzheng (1):
libtcmu: add support for write protect
bump version to 1.5.4
This is the 1.5.4 release of tcmu-runner.
Release notes:
In this release it includes some minor cleanups and in rbd handler there has one WRITESAME bug fixing and one enhancement by using the new daemon name format to simplify the ceph status
to make it more readable.
Shin'ichiro Kawasaki (1):
file_zbc: Remove unnecessary zone boundary check
Xiubo Li (6):
rbd: use the new format of the daemon name
rbd: fix the unmap align and granularity size
tcmur: clean up the code
tcmur: fall back to writesame without unmap if not aligned
handler: add writesame/caw hooks support
bump version to 1.5.3
This is the 1.5.3 release of tcmu-runner.
Release notes:
There contains a lot of changes since 1.5.2.
There have some enhancements and many bug fixes, including the patches to fix bugs about XCOPY failure with cross-device requests and SUSE/Debian adapting patches. And also some features supporting, such as for the ceph/rbd handler, it will try to remove all the stale blocklist entries when opening devices to avoid the ceph osdmap being full of stale blocklist entries, which are introduced when doing the lock thrashing between different nodes. At the same time the ceph/rbd handler will report the tcmu-runner project events to ceph cluster, which will give the admin an overall view about the tcmu-runner clients.
Changes:
Andreas Herrmann (2):
extra/install_dep.sh: Add support for SUSE
libtcmu_log: Set tcmu_logbuf before log thread is created
Daniel F. Smith (1):
Add tcmu_dev_get_memory_info() and split+rename device_add().
David Disseldorp (5):
scsi: minor simplification of inquiry if/else logic
tcmur: fail cross-device XCOPY requests
tcmur: fail XCOPY requests with inline data
tcmur: don't assume two XCOPY CSCDs
tcmur: error if both src/dst_dev are unset after CSCD parsing
Gao Mingfei (1):
extra script: Fix install_dep.sh
Josh Jameson (1):
Add support for Debian
Mike Christie (8):
Simplify tcmu_set_thread_name
Fix possible cdb printing overflow
rbd: fix logging when client is blacklisted
rbd: fix formatting
runner: add thread helpers
runner: convert alua code to work helpers
runner: add handler error reporting cb
rbd: add report event support
Ryan Attard (1):
Add supported vpd pages to zbc vpd pages
Xiubo Li (19):
alua: make the lock done as INFO message
glfs: add lock support
logger: fix posible crash when loging to file
logger: correct the log message for log dir path
glfs: check EOF for read
libtcmu: remove stale fns declaration
tcmu-runner: set a name for each pthread
logger: add pthread name
glfs: disable the fencing when it is not support
glfs: allow to load the device when the sizes disagree
tcmur_device: remove unused recovery_thread member
target: convert recovery thread to work helpers
worker: do not set thread name in the callback fn
CMakeList.txt: fix the style and switch tabes to white spaces
tcmur: add the init/destroy support in struct tcmur_handler
glfs: add init/destroy support to fix memory leak
tcmu-runner: explicitly release the g_runner_handlers resources
rbd: remove all the stale blacklist entries when opening devices
lock: do not try to acquire the lock for read fops
Yuri Per (1):
Add missing libpthread
v1.5.2
This is the 1.5.2 release of tcmu-runner.
Release notes:
This contains a fix for a regression added in 1.5 where when using the rbd handler the incorrect max unmap length is reported. This results in unmap requests larger than (4 * ceph object size) failing. This may require a rescan on the initiator so the correct unmap limits are used.
Changes:
Mathieu Parent (1):
Add missing whatis entry for manpage
Mike Christie (2):
Fix man unmap len reporting
v1.5.1
This is the 1.5.1 release of tcmu-runner.
Release notes:
This contains a single fix for the rpm build.
Changes:
Xiubo Li (1):
spec: fix build error
v1.5.0
This is the 1.5.0 release of tcmu-runner.
Release notes:
- This is mostly a bug fix release.
- Yaowei Bai has been working on making libtcmu stable, but it is not yet completed in this release so the API may still change.
Ceph support notes:
HA setups should not be done manually with targetcli. The gwcli tool from ceph-iscsi or ceph dashboard is the preferred method. Setup and required setting documentation can be found here:
http://docs.ceph.com/docs/master/rbd/iscsi-overview/
Gluster support notes:
See https://github.com/gluster/gluster-block for gluster tools and instructions that should be used.
For all other handlers see the README.
Changes between 1.4.0 and 1.5.0:
Alex Reid (2):
Add method to query whether OOOC is supported
Follow coding style, move leading brace
Amar Tumballi (2):
tcmu-runner.spec: fix the rpm build errors
spec-file: further changes to take options to ignore dependencies
Bryant G. Ly (3):
tcmu: Simplify command completion
tcmu: Fix CMake to install file_optical
Fix unmap to handle refcount being 0
David Disseldorp (2):
cmake: drop rsyslog build time check
cmake: add a minor .so version number to libtcmu
Jason Dillaman (5):
file_zbc: fixed compile error under ppc64le
file_zbc: optionally build zbc handler
Optionally link against tcmalloc for improved small IO performance
extra: add gperftools-devel to install_dep script
cmake: set '-fno-builtin-XYZ' options when tcmalloc is used
Ken Dreyer (3):
rpm: use valid short name licenses in License field
rpm: remove %clean section
rpm: remove %defattr
Konstantin Kharlamov (1):
darray.h: avoid UB when decrementing zero pointer
Mathieu Parent (3):
Fix spelling s/reseting/resetting/
Fix spelling s/Igoring/Ignoring/
Add link to tcmu-runner manpage from tcmu-runner.service
Mike Christie (47):
Enable explicit alua support.
lib: Update tcmulib_command_complete comments
cfgfs: Add tcmu_cfgfs prefix to cfgfs lib functions
Use uin32_t instead of unsigned long for cfgfs lib function
Rename tcmu_set_control to match cfgfs lib functions
Drop tcmu_set_dev_size
Drop tcmu_get_dev_size
Rename tcmu_cfgfs_dev_get_attr to tcmu_cfgfs_dev_get_attr_int
Use uin32_t for cfgfs action values
Rename tcmu_get_wwn to tcmu_cfgfs_dev_get_wwn
Rename dev/nl block/reset cfgfs functions
Sync libtcmu dev get/set naming
Sync lbtmcu cmd and misc naming
Remove daemon priv hack
Build zbc/fbo with scsi.c
Move tcmu_get_runner_handler
Fix up configfs file not found error message
Call block/reset dev directly
Call block/reset nl directly
Switch some inotify messages from info to debug.
Drop cfg path variable
Fix 80 col formatting in def_log_path setup
Check if device is opened before calling handler
Fix pthread error handling
Drop in_lock_thread from __tcmu_reopen_dev
Allow some commands to run while taking lock
Drop is_sync arg from tcmu_acquire_dev_lock
runner: fix crash during compound command execution
libtcmu: Allow handlers to allocate n bytes with each command
rename tcmur tcmulib command completion function
runner: fix up callout return info
Add tcmu-runner cmd completion function
Set handle_caw_read_cbk in caw_init_readcmd
Set write_verify cbks in write_verify_init
runner: unbind aio code from tcmulib_cmd
Cleanup runner callout definitions
tcmu-runner: simplify format unit io limit check
Prep for separating runner fields from tcmulib_cmd
Add tcmur-runner cmd struct
Convert runner handlers and core code to tcmur_cmd
Drop unused tcmulib_cmd code
Check for optional handler callouts
lib/runner: Add helpers to convert lbas and bytes
Log timed out commands
Don't install headers.
Disable explicit alua support.
Bump version to 1.5.0.
Prasanna Kumar Kalever (21):
systemd: start rsyslog.service before tcmu-runner.service
spec: add rsyslog to requires list
cmake: add rsyslog to dependencies list
spec: remove changelog
logger: check for -1 return value on open
inotify: watch the directory not just file
config: cleanup few allocations and naming
logger-init: honor the defaults when config key:value pair is commented
config: deprecate tcmu_parse_config
main: organize the cleanup sequence
dyn-logger-config: honor the precedence
daemon: log start/exit msgs with crit level
doc: update readme
cmake_install: backup old tcmu.conf version as tcmu.conf.old
load_config: retry opening conf-file if the initial attempt fail
logger: skip resetting options if they match with current
format-security: fix snprintf usage
tcmu: link libtcmalloc with libtcmu and handlers
tcmu: reconfig_device convert err log to debug
api: tcmu_cdb_print_info convert err log to debug
reconfig_device: add request cfg type to logs
Sebastian Herbszt (2):
Fix parameter for tcmu_setup_log()
Validate input for tcmu_log_dir_check()
Xiubo Li (26):
api: add zeroed iov check support
glfs: add writesame support
tcmur: fix the unmap logging format
logrotate: add logrotate support for tcmu-runner-glfs.log
libtcmu: remove useless parameter in remove_device
logger: add critical log level support
config: do not update the logdir when it's commented in conf
libtcmu: carve-out library packages separately
config: clean up the code
README: update and add the make_runnerrpm.sh info
logrotate: fix the install cmake file
logrotate: do not overwrite the exist config file
spec: fix building error
tcmu: clean up the code
glfs: add gfapi version check
glfs: fix build error for GFAPI version check
logrotate: fix duplicate log entry error
lockfile: switch to use /run/tcmu.lock
README: update to add uninstall
glfs: update the glfs logdir
libtcmu_time: void header file include muti-times
spec: switch to use rpm conditional switches
spec: pass the tcmalloc option to cmake command
spec: update the spec file to fix the build error
spec: track backuped files
tcmur: remove useless code
Yaowei Bai (8):
libtcmu: explicitly include tcmu-runner.h where necessary
libtcmu_priv.h: drop unnecessary header files
libtcmu_log: get subtype from tcmulib_handler
libtcmu: declare tcmu_cancel_thread in libtcmu_common.h
libtcmu: move SCSI helpers out of libtcmu
libtcmu: move tcmu_get_runner_handler into scsi.c
Revert "build: drop versionless libtcmu.so symlink"
Partial revert of "libtcmu: do not install headers and drop libtcmu stable API"
peng.liang (10):
main: load_our_module maybe failure but can't sensed
libtcmu: setup_netlink maybe failure but can't sensed
rbd: fix the error ret in tcmu_rbd_unlock
Fix pthread error ret
configfs: clean up the code
fix typo in code
configfs: fix index out of bounds
fbo: fix mutex destroy
tcmur: fix free of xcopy parse
alua: fix pthread attr destroy
tangwenji (1):
tcmu:fix extra backslash
李明辉10144360 (1):
Drop sense arg from tcmu_explicit_transition
v1.4.1
This is the 1.4.1 release of tcmu-runner.
Release notes:
This is a bug fix release which fixes several issues hit with ESX initiators and the build system. For the latter zbc is now optionally built with the flags:
cmake .... -Dwith-zbc=false
or
cmake .... -Dwith-zbc=true
The short changelog is:
Jason Dillaman (2):
file_zbc: fixed compile error under ppc64le
file_zbc: optionally build zbc handler
Mike Christie (5):
Check if device is opened before calling handler
Fix pthread error handling
Drop in_lock_thread from __tcmu_reopen_dev
Allow some commands to run while taking lock
tcmu-runner: bump version to 1.4.1
v1.4.0
This is the 1.4.0 release of tcmu-runner.
Release notes:
- This is mostly a bug fix release.
The ground work for explicit ALUA support is added but is disabled in this release, because the Red Hat QA team has not tested it and there are still bugs being worked on.
-
tcmu-runner is now dual licensed Apache 2 and LGPL v2.
-
Ceph support notes:
HA setups should not be done manually with targetcli. The ceph-iscsi-cli tool is the preferred method. Setup and required setting documentation can be found here:
http://docs.ceph.com/docs/master/rbd/iscsi-overview/
- Gluster support notes:
See https://github.com/gluster/gluster-block for gluster tools and instructions that should be used.
- For all other handlers see the README.
The short changelog is:
Damien Le Moal (3):
zbc: fix write emulation
zbc: fix maximum number of open zones
file_zbc: correctly handle iovec seek
David Butterfield (4):
Improve generality of tcmu_dev_{err,warn,...}
improve tcmu-runner behavior under valgrind
add checking of logging formats vs. arguments
format string as ("%s", buf) instead of (buf)
David Disseldorp (2):
api: avoid compiler -Werror=return-type failures
build: drop versionless libtcmu.so symlink
Dmitry Fomichev (2):
Add installation action for file_zbc handler
Set correct sense upon getting write to FULL zone
Gangbiao (1):
To enhance the reuseability of code, move function 'tcmu_cancel_thread' from 'main.c' to 'api.c'
Jason Dillaman (2):
tcmur: batch kernel wake up notifications
rbd: detect pools associated to NVMe device class
Masato Suzuki (1):
file_zbc: Fixed write error checking
Mike Christie (70):
rbd: fix coding style and compilation error
runner: make reopen retries configurable
runner: allow tcmu_acquire_dev_lock to be called from cmd handler
runner: add helper to set alua ints
runner: add new lock states
runner: return lock state after update
runner: separate connection errros from fence ones
add back explicit failover support
runner: get/set remote alua group info
rbd: get/set lock tag
rbd/runner: remove get_lock_state
Sync up error codes
Convert TCMU_NOT_HANDLED to TCMU_STS_NOT_HANDLED
Convert TCMU_ASYNC_HANDLED to TCMU_STS_ASYNC_HANDLED
Convert SAM_STAT_GOOD to TCMU_STS_OK
Convert SAM_STAT_TASK_SET_FULL to TCMU_STS_NO_RESOURCE
Convert ASC_LBA_OUT_OF_RANGE to TCMU_STS_RANGE
Convert ASC_INTERNAL_TARGET_FAILURE
Convert ASC_MISCOMPARE_DURING_VERIFY_OPERATION to TCMU_STS_MISCOMPARE
Convert simple sense/status cases
Convert alua sense/status
Convert rbd alua/lock to use TCMU_STS
Convert simple fbo cases to TCMU_STS
Convert ASC_NOT_READY_FORMAT_IN_PROGRESS
Drop info arg from tcmu_set_sense_data
Cleanup tcmulib_command_complete
Move SCSI sense defs to zbc
cleanup unused sense buf uses
update docs for TCMU_STS codes
tcmu-runner: bump version to 1.4.0-rc1
Rename license file
Add LGPL license file
Change license to Apache 2 or LGPLv2.1
Fix tarball release location
glfs: add discard support
Fix compilation errors
Fix compilation error due to iovec definition duplication
runner/rbd: update lock state on RTPG/INQUIRY
Do not return alua state transition
runner: fix double close/free
runner: fix double log message
runner: reopen dev right away if we know we had the lock and lost it
rbd: fix llu vs PRIu64 use for len/off
Add newline to alua lock messages.
Change alua transition in process message to a debug
runner: allow handlers to override default unmap limits
runner: allow handler to override max unmap len limit
rbd: set unmap limits based on object size
runner/rbd: pass unmap segments directly to handler
libtcmu: add helpers for xcopy read/writes
tcmu-runner: set default internal xcopy limits based on max xfer len
rbd: increase xcopy IO size
libtcmu: fix max unmap definition
runner: print lio name and not the uio name
runner: don't drop iscsi connection on lock fence errors
runner/rbd: do not set lock metadata if not needed
Log rb cleanup
Fix logger thread race
misc logcleanup
logger: return errno instead of bool
log/config: limit callers that can set the log dir
make config watcher optional
Simplify tcmu_logbuf init
Simplify log outputs
Allow log file restart from SIGHUP
Move starting log message.
Add logrotate support
Sync sig handler naming.
Disable explicit alua support.
tcmu-runner: bump version to 1.4.0
Prasanna Kumar Kalever (5):
glfs: remove size checks in handler
logging: improve log details
tcmur: fix ret value in tcmur_dev_update_size
runner: don't allow multiple instances of daemon to run
glfs: set loglevel to INFO
Raghuram Devarakonda (1):
Fixed build procedure in README.
Taylor Jakobson (1):
rbd: new option for specifying the id
Xiubo Li (34):
glfs: update the glfs config descritions and add usage of creation
extra: Add make_runnerrpms.sh support
log: bypass the log ring buffer for file and std outputs
configfs: remove null chars in the string readed from the sys files
libtcmu: add tcmu_is_ring_reset_support support
libtcmu: Add tcmu flags and size setting helpers support
glfs: reopen on connection lost
tcmu-runner: improve the logging always to get daemon's exit state
config: reset to default values after the options being set
gitignore: ignore extra/rpmbuild
api: list all the cdb data for unsupported SCSI commands
alua: reduce the debug logs
alua: allow handlers missing lock routine
config: reset to str default values after the options being set
config: reset to boolean default values after the options being set
config: fix memory leak of cfg->log_dir_path
config: add the logdir option dynamic reloading support
log: do not insert the CDB debug logs to ringbuffer
config: fix the log message and clean up the code
config: make the struct data invisible
config: fix parse error when there has no space after '='
main-syms: remove tcmu_cancel_thread
CMakeList: fix missing file for static library
glfs: allow the backend file size not aligns to the block_size
configfs: add CFGFS_TARGET_MOD macro
tcmu-runner: add reset netlink support
spec: fix rpm package build error
spec: force to install tcmu.conf in buildroot
tcmu-runner: fix the code style
tcmu-runner: add Starting log info
log: move tcmu_logbuf->finish_initialize into logbuf lock/unlock
logger: fix the return value
logger: update .gitignore for logrotate.conf_install.cmake
logger: notification on changing the options for dynamic reloading
Yaowei Bai (1):
libtcmu: drop duplicated ";"
Zhang Zhuoyu (1):
handler: do not perform implicit transition if command not supported
peng.liang (2):
conifg: fix error ret
main: fix error goto
root (1):
fix the memory cross boundary bug in tcmu_rbd_detect_device_class
tangwenji (14):
rbd:Parsing option 'conf=' error
tcmu-runner:fix free manager
rbd:fix parse cfgstring optional options
fix the condition of sleep in _tcmu_reopen_dev
main:remove source and decrements the reference count of the GIOChannel
tcmur:fix the initial value of the return var
target:delete device node from devs before reopen device
tcmur:fix format character on handle_writesame_check
tcmur:fix number of logical blocks is zero in caw command
libtcmu:fix valid field in sense data
tcmur: fix the max length of caw command
tcmur: differentiate various sa in the xcopy command
tcmur: fix the minimum of cscd descriptors list length
libtcmu: add additonal sense code for xcopy
umuzhaohui (2):
tcmu-runner: fix bug in COMPARE_AND_WRITE command
tcmu-runner: fix bug in EXTENDED_COPY command
xinxin shu (1):
tcmu-runner: fix bug in HA about re-acquire lock
Version 1.4.0-rc1.
Version 1.4.0-rc1.
This is the 1.4.0.rc1 release of tcmu-runner.
Release notes:
- The primary change in this release is moving from implicit failover to adding back explicit support.
Initiator config changes:
-- For ESX this will require a change to the PSP being used. We will not used FIXED. Documentation is being prepared here:
-- There are no file/settings changes to windows and linux initiators.
Target side config changes:
-- This release requires updated ceph-iscsi-cli and ceph-iscsi-config versions:
-- Currently to update from older releases, you must logout the iscsi initiators, update the target side packages then relogin. Note that more detailed and less invasive instructions are being worked on for the final release.
-
There is a performance fix from dillaman. See #359 for more details.
-
There have been many bug fixes from letterwuyu, dillaman, tangwenji pkalever, lxbsz, umuzhaohui, baihuahua/dev, pengliang233, dmitry-fomichev, damien-lemoal, ddiss and zhuozh.
Version 1.3.0.
Version 1.3.0.
This is the 1.3.0 release of tcmu-runner.
Release notes:
- This release includes improved Ceph support by Red Hat and China Mobile.
Ceph support notes:
- HA setups should not be done manually with targetcli. The ceph-iscsi-cli tool is the preferred method. Setup and required setting documentation can be found here:
http://docs.ceph.com/docs/master/rbd/iscsi-overview/
- HA support requires the RHEL/CentOS 7.5 kernel; Linux kernel v4.16 or newer; or the Ceph iSCSI client test kernel. Instructions for getting the Ceph iSCSI client test kernel can be found on the manual install instructions here:
http://docs.ceph.com/docs/master/rbd/iscsi-target-cli-manual-install/
- Persistent Group Reservations (PGRs) and SCSI-2 Reserve/Release commands are not supported in HA tcmu-runner configurations.
- Improved Gluster support by Red Hat.
See https://github.com/gluster/gluster-block for gluster tools that should be used.
- Thanks to @lxbsz and China Mobile there is vSphere/ESXi VAAI support and tons of bug fixes.
vSphere support notes:
-
In tcmu-runner HA configs "ATS-only" must be used (see https://docs.vmware.com/en/VMware-vSphere/6.0/com.vmware.vsphere.storage.doc/GUID-DE30AAE3-72ED-43BF-95B3-A2B885A713DB.html).
-
Ceph iSCSI HA is only supported with vSphere 6.5 with vmfs 6 data stores. See the Ceph docs for setup instructions and required settings:
http://docs.ceph.com/docs/master/rbd/iscsi-initiators/
- vSphere HA support is under development. There is one last known issue where performance will be drop if one host lost its primary path but other hosts do not. See tcmu-runner issue: #341 for more details.
-
@bgly and IBM have added support for new commands including: WRITE_VERIFY, VERIFY, FORMAT and SYNCHRONIZE CACHE and have made many bug fixes to file_example, file_optical and tcmu-runner/libtcmu.
-
AIO support has been added by @vshankar at Red Hat.
-
Thanks to @tangwenji at ZTE for lots and lots of bug fixes.
-
Thanks to @mgerstner at SUSE for doing a security review and the patches.
-
Thanks to Jason Dillaman for rbd improvements and COMPARE_AND_WRITE offload support.
-
This release has dropped support for libtcmu 1.0. Versions 2.0 and on also no longer provide a stable API.
Changes from 1.3.0-rc4 to 1.3.0:
Fixes for tcmu-runner restart.
Ceph rbd support perf improvements to the data path and reporting.
Ceph rbd support for offloaded COMPARE_AND_WRITE.
Misc fixes for failover.
RPM support.
Changes from 1.3.0-rc3 to 1.3.0-rc4:
Added zbc handler.
Fix regression added in rc3 where handler may not close device.
Fix dbus registration handling.
Fix device removal that caused kernel uio crash.
Add basic rbd resize support and basic Unit Attention support.
Add script to install deps on Red Hast based distros.
Add handler info to log messages.
Changes from 1.3.0-rc2 to 1.3.0-rc3:
Fixes for failover, ALUA command handler, device removal and misc logger fixes.
Changes from 1.3.0-rc1 to 1.3.0-rc2:
Fix rbd build error.