Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
Fixes compile error: void operator delete(void*, std::size_t)' called on pointer returned from a mismatched allocation function
|
|
|
|
Kernel 5.15, and probably newer, present an EXEDEV error when the
vyatta-cfg code tries to boost::filesystem::copy_file on UnionFS
FUSE mounts. This completely breaks operation on newer kernels, and
is therefore a blocker to the rest of the project moving on to new
Linux LTS versions.
Boost is complex and fraught, this code behaves inconsistently in
verious operating environments, and can be a nightmare to debug.
Handle the concerns above using binary streaming in C++ to copy the
source to the destination if an exception occurs during the
existing Boost copy_file operation.
Testing:
Built ISO (cloud target), packer install, booted in OpenStack on
KVM, booted in AWS on Xen, verified configurations are committed in
both cases and that error logs are being generated to inform users
about the fall-through being utilized to write-out configurations.
Notes:
Logging may be dropped to avoid flooding storage on often-updated
systems. It is left in-place to aid developers in debugging the root
concern underpinning Boot breakage (which may impact other areas of
the code).
|
|
1. Use chrono library instead of basic C library to improve accuracy
2. Introduce the tracing helpers
3. Add tracing calls to the main processing points
NOTE: loger is writing to the stdout, and for bootloader it is
redirected to - /var/log/vyatta/vyos-boot-config-loader.log
|
|
In release v1.0 of unionfs-fuse, the meta directory was renamed from
.unionfs to .unionfs-fuse. Consequently, the clean up of the directory
following a commit vacuously succeeds, and the meta data remains. On a
subsequent commit, this hidden directory will be copied into the tmp
directory structure. As permissions on the whiteout files belong solely
to the user, commit actions in a multiuser environment may encounter
permission errors, leading to a failure in commit. Change the meta
directory name here to accord with the change in unionfs-fuse, but
beware that the change is reverted in release v2.0 of unionfs-fuse.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If a configuration session is exited uncleanly, either as a result of a
network disconnect / timeout or other forced quit from within config
mode, the unionfs mount is left in place. These remain until the
system is rebooted, giving an error when unmounting the config
directory.
This commit checks for old configuartion directories when a user enters
config mode, removing any found that are owned by that user but not
part of any active configuration seesion.
Bug #564 http://bugzilla.vyos.net/show_bug.cgi?id=564
|
|
|
|
When changes are made to the system by more than one user, only the
first user after a reboot is able to commit successfully, the others
fail with "Failed to generate committed config". This is caused as
a result of the underlying unionfs-fuse mount used for the system
configuration and the fact that a .unionfs directory if left in the
active configuration with permissions set such that only the original
committing user can change them.
Bug #403 http://bugzilla.vyos.net/show_bug.cgi?id=403
|
|
Use Build-iso to create /etc/fuse.conf file.
Use pipe(),fork(),execl() functions instead of system() function to
call unionfs-fuse.
|
|
|
|
|
|
1. Bugfix 8254: Show the help text first so users don't think there is
only one completion for a value when it exists with non-comps
2. Fix config mode inconsistencies with operational mode. Show all
values in help text.
3. Fix "exists_only" command handling. Only show nodes that exist when
doing completion for show, comment, and delete.
|
|
|
|
Don't fail if lock file already exists
|
|
Bug 8204
Make sure we don't handle unnecessary file descriptors to child
processes. This is done by marking file descriptors as close on
exec, and closing pipe before exec.
|
|
This fixes some more of the memory leaks in load and commit.
Some still exist in the legacy cli_new/cli_parse code. Since that code
is supposed to be rewritten such that it interfaces with the rewritten
commit code in a clean way, these will not be fixed right now.
|
|
|
|
|
|
Incorrect use of #ifdef. Gcc major version is in __GNUC__
|
|
|
|
consistency
|
|
Bug 7188
The problem is that vyatta cfg backend is using internals of c++
templates (in std::tr1) and these will change between versions of glibc.
Workaround by adding necessary conditional compilation
|
|
|
|
|
|
|
|
(cherry picked from commit fdac525b7596f1b18c201bdcd5923d3e76453ebd)
|
|
(cherry picked from commit 9f1ff5427e0f72f2bded287be6e1d4cf442945cb)
|
|
|
|
|
|
|
|
|
|
|
|
* add commit notification.
* fix relative VAR references that traverse up to root level.
|
|
|