Publish-Module traverses all of $PSModulePath when using -Path

Steps to Reproduce (for bugs)
Publish-Module -Path .\foo\ -Verbose
# Verbose isn't needed it here, but it makes the repro more evident

Expected Behavior
Publish should happen immediately because the exact location of the module is known. At the very least, it should be as quick as Get-Module -ListAvailable, as that should have all necessary information for RequiredModules.
Current Behavior
If there's a bunch of modules installed on the machine, the publish could take minutes. On the customer's machine, they were able to run Get-Module -ListAvailable multiple times before Publish-Module finished "Preparing modules for first use".
Possible Solution
Don't do full module analysis when the -Path parameter is used.

$PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.15063.313
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.15063.413
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>

Get-Module -ListAvailable PowerShellGet,PackageManagement

Directory: C:\Program Files\WindowsPowerShell\Modules

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Binary     <IP_ADDRESS>    PackageManagement                   {Find-Package, Get-Package,...
Script     <IP_ADDRESS>    PowerShellGet                       {Install-Module, Find-Modul...

Get-PackageProvider -ListAvailable

Name                     Version          DynamicOptions
----                     -------          --------------
msi                      <IP_ADDRESS>          AdditionalArguments
msu                      <IP_ADDRESS>
nuget                    <IP_ADDRESS>        Destination, ExcludeVersion, Scope, SkipDep...
NuGet                    <IP_ADDRESS>        Destination, ExcludeVersion, Scope, SkipDep...
PowerShellGet            <IP_ADDRESS>          PackageManagementProvider, Type, Scope, All...
Programs                 <IP_ADDRESS>          IncludeWindowsInstaller, IncludeSystemCompo...

This was happening due to a regression in the Test-ModuleManifest which traverses all of $PSModulePath. This issue has been resolved in the Test-ModuleManifest cmdlet.


Volume slider not working on external speaker (connect thru HDMI ARC)

I have a home theater (external speaker connect thru HDMI ARC) connected to my webostv, the volume slider doesn't work when the external speaker is selected, otherwise the volume buttons work normal with external speaker. Is there a fix for this?
Originally posted by @joseeduardoperes in https://github.com/merdok/homebridge-webos-tv/issues/90#issuecomment-513465566

Hi,
unfortunately there is no fix for that. As far as i know it is not possible to control external volume with the slider. The volume buttons (up and down) were introduced to able to control external volume level so maybe you should try that?


Apostrophe in star comment breaking the color code and readability

Is there an existing issue for this?

[X] I have searched the existing issues

Description
Hello,
I'm quite new to fotran, and currently facing two problems with the fortran extension a lot of comment with an apostrophe : ' character and also starting with a star : *.
If a comment like that exists in a F90 file, it is not recognized as a command, and the apostrophe breaks the readability of the rest of the file :
*-----   Excuse me, I'm a simple comment
Is this a bug or issue of the plugin, or are there any tricks to fix this issue locally, and activate the parsing of * starting line as comment in F90 files ?
Exemples :
     program hello !---- Test'         print *, 'Hello World'       end program hello
works but :
      program hello *---- Test'         print *, 'Hello World'       end program hello
don't
Screenshots
No response
Expected Behaviour
Appropriate formatting
Version of Modern Fortran
v3.4.2023032301
Version of Visual Studio Code
v1.76
Platform and Architecture
Linux

Ok thanks for your reply. Would you advise it is not pertinent to implement anything regarding my issue in the module, and only fix this locally ? I suppose I would need to change fortran_free-form.tmLanguage.json lines 1255 to 1259 from :
"comments": {
  "name": "comment.line.fortran",
  "begin": "!",
  "end": "(?=\\n)"
},

to
"comments": {
  "name": "comment.line.fortran",
  "begin": "!|\*",
  "end": "(?=\\n)"
},

* is a reserved operator and format selector. I am relatively certain that the TextMate grammar regular expressions would struggle to distinguish between
a_cal = a * b ** 2 * a comment

The snippet that you provided btw is Fixed Form, not FreeForm. There are different syntax highlighting rules for Fixed Form, which work perfectly fine for your case


Don't typedef bool if compiling with C++

If using the C++ wrapper provided by r3.hpp, you get a compiler
error when r3_define.h tries to typedef bool as C++ already has
native bool type.  Modified the guard around this typedef
to include a check for C++ compilation (!defined(__cplusplus)).

Thanks!


Contributing guide

/assign @gabemontero
fyi @openshift/sig-developer-experience @nalind

/retest
ping @coreydaley @gabemontero

@coreydaley @gabemontero @bparees updated based on feedback & squashed

LGTM

I'll defer on adding the label to allow @bparees and @coreydaley to chime in

lgtm

A few small nits, then I think we can give it the old lgtm

/lgtm


feat: make bundled SQLite optional

What does this PR try to resolve?
This helps cargo-the-library consumers easier to manipulate their
dependency graph if they don't want to bundle SQLite3. For example,
Linux distro maintainers want full control of the dependency closure.
How should we test and review this PR?
Make sure

cargo build fails when without SQLite3 development headers
cargo build succeeds when with SQLite3 development headers
cargo build -F vendored-sqlite always works

One drawback of this is that people now need to take care of one extra system library.
Additional information
See also https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/cache.20cleaning.20blog.20post/near/405596136.

I'm concerned about this change, as I would prefer to not require users to install a separate dependency. Is there an issue with having distros use LIBSQLITE3_SYS_USE_PKG_CONFIG?

Another concern is that we cannot control the minimum sqlite version when using a packaged one. Thus, we would not be able to provide reliable build-time errors when the version is too old, or to fall back to the bundled version like other bindings do.

Another concern is that we cannot control the minimum sqlite version when using a packaged one.

I don't feel like that's a real issue. We should know the minimum version of SQLite Cargo depends on. But yep communication of it is a headache.

Is there an issue with having distros use LIBSQLITE3_SYS_USE_PKG_CONFIG?

No. It is always an option. Just a pity that we cannot use built-in cargo feature mechanism to control it.
Agree on that it is a bit too painful to get around with dependency on each platform. That increases frictions for new contributors. So closing!


Enable USB for stm32wb.

Define USB driver for base stm32wb device.
Enable USB for the nucleo_wb55rg board.
Properly initialize USB power + clock for the platform.

@petejohanson seems that you didn't actually pushed the fixes

@erwango Not sure I understand your last comment. Something else you need from me?

@petejohanson, it was just to inform you that I'll just take bit more time to verify the pin stuff.

@erwango Ah. Ok. Totally makes sense.

Tested ok

@loicpoulain @ydamigos want to do any reviews here?


Update uber-licence; fix licence headers

This PR updates to the latest uber-licence and fixes the licence header on some files.

LGTM

LGTM


feat: add sonarlint

I'm going to need more explanation as to why this PR needs to change how we set up commands

@mjlbach
Currently, create_module_commands function expects the command to be defined as a table. The new command I defined for the server config (SonarLint.DeactivateRule) is a function and therefore caused an error. (This command is required to be implemented to handle deactivate rule code action). However, if I redefine the command as a table like create_module_commands expects it will also cause an error because the way neovim handles commands in apply_action: it expects the command to be a function rather than a table. And I think nvim-lspconfig should not create module command from commands that are supposed to handle code actions rather than for user to run directly (like SonarLint.DeactivateRule command); therefore, I changed create_module_commands so that it only creates module command from commands defined as table (i.e. commands that are intended to be run directly by user).

https://github.com/neovim/nvim-lspconfig/pull/1838 should resolve the issue with user_commands when it is merged.


Issue when buillding with Python 3.11

There is an issue with the build system when I'm trying to install qbindiff from sources in a Python 3.11 virtualenv. It is linked to the pyproject.toml, as there is duplicated information in the setup.py it could come from this.
the full log:
$ pip install '.'
Processing [HOME]/Tools/python-binexport
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [83 lines of output]
      /tmp/pip-build-env-4oxnieei/overlay/lib/python3.11/site-packages/setuptools/config/_apply_pyprojecttoml.py:75: _MissingDynamic: `requires-python` defined outside of `pyproject.toml` is ignored.
      !!

              ********************************************************************************
              The following seems to be defined outside of `pyproject.toml`:

              `requires-python = '>=3.9'`

              According to the spec (see the link below), however, setuptools CANNOT
              consider this value unless `requires-python` is listed as `dynamic`.

              https://packaging.python.org/en/latest/specifications/declaring-project-metadata/

              To prevent this problem, you can list `requires-python` under `dynamic` or alternatively
              remove the `[project]` table from your file and rely entirely on other means of
              configuration.
              ********************************************************************************

      !!
        _handle_missing_dynamic(dist, project_table)
      /tmp/pip-build-env-4oxnieei/overlay/lib/python3.11/site-packages/setuptools/config/_apply_pyprojecttoml.py:75: _MissingDynamic: `license` defined outside of `pyproject.toml` is ignored.
      !!

              ********************************************************************************
              The following seems to be defined outside of `pyproject.toml`:

              `license = 'AGPL-3.0'`

              According to the spec (see the link below), however, setuptools CANNOT
              consider this value unless `license` is listed as `dynamic`.

              https://packaging.python.org/en/latest/specifications/declaring-project-metadata/

              To prevent this problem, you can list `license` under `dynamic` or alternatively
              remove the `[project]` table from your file and rely entirely on other means of
              configuration.
              ********************************************************************************

      !!
        _handle_missing_dynamic(dist, project_table)
      /tmp/pip-build-env-4oxnieei/overlay/lib/python3.11/site-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsWarning: `install_requires` overwritten in `pyproject.toml` (dependencies)
        corresp(dist, value, root_dir)
      Traceback (most recent call last):
        File "[HOME]/.virtualenvs/binexport/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "[HOME]/.virtualenvs/binexport/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "[HOME]/.virtualenvs/binexport/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel
          return hook(config_settings)
                 ^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-4oxnieei/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 325, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=['wheel'])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-4oxnieei/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 295, in _get_build_requires
          self.run_setup()
        File "/tmp/pip-build-env-4oxnieei/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 311, in run_setup
          exec(code, locals())
        File "<string>", line 7, in <module>
        File "/tmp/pip-build-env-4oxnieei/overlay/lib/python3.11/site-packages/setuptools/__init__.py", line 103, in setup
          return distutils.core.setup(**attrs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-4oxnieei/overlay/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 159, in setup
          dist.parse_config_files()
        File "[HOME]/.virtualenvs/binexport/lib/python3.11/site-packages/_virtualenv.py", line 23, in parse_config_files
          result = old_parse_config_files(self, *args, **kwargs)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-4oxnieei/overlay/lib/python3.11/site-packages/setuptools/dist.py", line 627, in parse_config_files
          pyprojecttoml.apply_configuration(self, filename, ignore_option_errors)
        File "/tmp/pip-build-env-4oxnieei/overlay/lib/python3.11/site-packages/setuptools/config/pyprojecttoml.py", line 67, in apply_configuration
          return _apply(dist, config, filepath)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-4oxnieei/overlay/lib/python3.11/site-packages/setuptools/config/_apply_pyprojecttoml.py", line 56, in apply
          _apply_project_table(dist, config, root_dir)
        File "/tmp/pip-build-env-4oxnieei/overlay/lib/python3.11/site-packages/setuptools/config/_apply_pyprojecttoml.py", line 82, in _apply_project_table
          corresp(dist, value, root_dir)
        File "/tmp/pip-build-env-4oxnieei/overlay/lib/python3.11/site-packages/setuptools/config/_apply_pyprojecttoml.py", line 211, in _python_requires
          _set_config(dist, "python_requires", SpecifierSet(val))
                                               ^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-4oxnieei/overlay/lib/python3.11/site-packages/setuptools/_vendor/packaging/specifiers.py", line 708, in __init__
          split_specifiers = [s.strip() for s in specifiers.split(",") if s.strip()]
                                                 ^^^^^^^^^^^^^^^^
      AttributeError: 'NoneType' object has no attribute 'split'
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

Fixed on https://github.com/quarkslab/python-binexport/pull/14


Update image metadata to use LABEL

https://github.com/openshift/sti-ruby/issues/24

[test]

re-[test] as previous error was related to timeouts on scl site, which appears to be working correctly now.

LGTM


Question: Pseudo-Admonition gone?

I saw the discussion in issue https://github.com/chrisgrieser/shimmering-focus/issues/60 that you had removed the pseudo-admonitions. Are those gone completely? I ask because I see there's still an option for the symbol for the admonitions in Style Settings but that symbol doesn't show up for Header 6.
Thanks :)

They were removed at that point, since they were quite limited and also messed up other plugins using headings (e.g. Outline Plugin).
However, with yesterday's update I cam up with a new, different form of Admonitions that work multi-line and do not mess up heading structures: https://github.com/chrisgrieser/shimmering-focus#multi-line-admonitions
(they are quite hacky, so expect I expect that there are still some bugs for edge cases)

Thanks!

Not sure this is worth opening another issue but with the >>> admonitions in Preview mode (legacy and Live Preview) the first letter gets mostly/partially cut off:

yeah, that looks like a bug to me, so you should open a separate issue for that.


Support conversion of sum types in Apalache

This is pending on sum types in Quint, right?

Correct!

I've hit a snag that will require a bit of redesign on either the Apalache conversion side or the quint IR processing:
Given a type declaration like E in
  type F = | A
  type E = | X(F)

The declaration is stored in the IR like so:
        "15": {
            "id": 15,
            "name": "E",
            "kind": "typedef",
            "type": {
                "id": 15,
                "kind": "sum",
                "fields": {
                    "kind": "row",
                    "fields": [
                        {
                            "fieldName": "X",
                            "fieldType": {
                                "id": 14,
                                "kind": "const",
                                "name": "F"
                            }
                        }
                    ],
                    "other": { "kind": "empty" }
                }
            }
        },

The snag, for our purposes, is that F is not expanded and inlined, but merely noted as a type constant, together with the id with which we can retrieve the declaration in the lookup table.
Our assumption in the quint conversion so far is that we don't need to take account of defined types, and so type constants like this encountered in the IR are just mapped to abstract types in Apalache. As a result, when trying to construct variant application live variant("X", A), representing the construct for the A variant of F, we get a unification failure, since the type of the operand is given as the concrete sum type | A while apalache only allows the (incorrectly abstract) type constant F as an argument to X.
We have two clear options, afaict:

We can make the Apalache conversion take account if type declarations during conversion. This will mean we don't require any change on the quint side, but will increase the complexity of the apalache conversion code, and make for an even tighter coupling, requiring more updates on the apalache side if we change how we are representing these things in quint.

We can do a pass on the quint side that inlines all type constants before exporting the IR.

WDYT, @thpani, @bugarela? Any other options come to mind?

I've hit a snag that will require a bit of redesign on either the Apalache conversion side or the quint IR processing...

We should have hit the same issue with other data types earlier. Maybe @thpani remembers how it was dealt with

@bugarela I'll look into that! Thanks :)

Ahhh.. my debugging here is probably very off. I had been assuming that what Apalache gets is essentially the same as the output of typecheck. But I know see that verifySpec has been made to do a bunch of additional things -- changing the contents of a spec, doing additional analysis, additional flattening etc.
I'll have to figure out how to inspect what what is going on there and revise my hypothesis about why we are getting the failure.
Taking a step back, here is what is not working as I'd expect:
Given
  type S = | A
  type T = | B(S)

Apalache conversion is failing with this error from the builder:
  > Input was not a valid representation of the QuintIR: Conversion failed while building operator definition `QuintOpDef(27,B,def,QuintLambda(26,List(QuintLambdaParameter(23,__BParam_26)),def,QuintApp(25,variant,List(QuintStr(22,B), QuintName(24,__BParam_26)))))`: Operator Variants!Variant cannot be applied to arguments of types (Str, A({  })) E@07:33:44.752

And it is failing during this type comparison:
>>>> Comparing types: A({  }) S

Which, if everything were working as expected, would be the same, by definition.

Ahhh.. my debugging here is probably very off. I had been assuming that what Apalache gets is essentially the same as the output of typecheck. But I now see that verifySpec has been made to do a bunch of additional things -- changing the contents of a spec, doing additional analysis, additional flattening etc.
I'll have to figure out how to inspect what what is going on there and revise my hypothesis about why we are getting the failure.

Yeah... there's some flattening happening between typecheck and handing off to Apalache.
I usually just added a call to outputResult inside verifySpec (also, don't be surprised, outputResult calls process.exit() 😄).

We already have that, see aliasInliner.ts. Perhaps we have to change something there for the inliner to work for sum types as well.

Just for context: we also have some Quint type flattening logic in Apalache – I'm actually not sure how much overlap there is, but in the current case I think it makes sense to add to aliasInliner.ts in Quint, if necessary.

Thanks for the pointer, @thpani! I don't see any flattening of the relevant sort in the type converter: it is able to to direct conversion without any access to the lookup tables. So I suspect the error is that I neglected to wire in some required visitor method somewhere along the way :)


automatic shims

https://github.com/syndbg/goenv/issues/30
Thanks for https://github.com/kadaan
https://github.com/syndbg/goenv/issues/30#issuecomment-560240354
https://github.com/kadaan/goenv-goget-rehash

Hi, I'll try to review it this week.


ARTEMIS-2823 Use datasource with JDBC store db connections

Replaces direct jdbc connections with dbcp2 datasource. Adda
configuration options to use alternative datasources and to alter the
parameters. While adding slight overhead, this vastly improves the
management and pooling capabilities with db connections.

Before on settling down on dbcp. Did you evaluate other connection pool implementations. I remember that dbcp had performance and memory issues in the past (maybe nowadays too?). HikariCP might be a better alternative.
https://github.com/brettwooldridge/HikariCP
https://programminghints.com/2017/07/hikaricp/

Before on settling down on dbcp. Did you evaluate other connection pool implementations. I remember that dbcp had performance and memory issues in the past (maybe nowadays too?). HikariCP might be a better alternative.

Yes I did evaluate HikariCP and c3p0 (https://www.mchange.com/projects/c3p0/) along with dbcp2. Each of them worked just fine and I saw no noticeable performance difference beween them. Yes there used to be some major performance issues with dbcp2, but to my knowledge the latest version is much better. I did not run any real performance tests with each of the connection pools, but have done it with other applications. Dbcp2 has been slightly slower, but proven to be more reliable in an environment where database drops connections very aggressively, when compared to HikariCP. c3p0 was simply dropped because I'm not that familiar with it.
At the end, I made the choice based on the fact that with default settings dbcp2 was the only one that I got to work flawlessly in our test cluster. Both HikariCP and c3p0 required some extra configuration.

@uomik
I'm getting some test failures eg JDBCJournalTest::testCleanupTxRecords:
[main] 22:01:31,134 INFO  [org.apache.activemq.artemis.tests.util.ActiveMQTestBase] **** start #test testCleanupTxRecords[authentication = false]() ***
[main] 22:01:31,136 INFO  [org.apache.activemq.artemis.jdbc.store.drivers.JDBCDataSourceUtils] Initialising JDBC data source: org.apache.commons.dbcp2.BasicDataSource {driverClassName=org.apache.derby.jdbc.EmbeddedDriver, url=jdbc:derby:/home/forked_franz/IdeaProjects/activemq-artemis-upstream/tests/integration-tests/./target/tmp/JDBCJournalTest/junit12974489528425881245/derby;create=true}
[main] 22:01:31,878 INFO  [org.apache.activemq.artemis.tests.util.ActiveMQTestBase] **** end #test testCleanupTxRecords[authentication = false]() ***

java.lang.AssertionError:
Expected :0
Actual   :1
<Click to see difference>

	at org.junit.Assert.fail(Assert.java:88)
	at org.junit.Assert.failNotEquals(Assert.java:743)
	at org.junit.Assert.assertEquals(Assert.java:118)
	at org.junit.Assert.assertEquals(Assert.java:555)
	at org.junit.Assert.assertEquals(Assert.java:542)
	at org.apache.activemq.artemis.tests.integration.jdbc.store.journal.JDBCJournalTest.testCleanupTxRecords(JDBCJournalTest.java:175)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
	at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
	at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
	at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
	at org.junit.rules.RunRules.evaluate(RunRules.java:20)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
	at org.junit.runners.Suite.runChild(Suite.java:127)
	at org.junit.runners.Suite.runChild(Suite.java:26)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
	at org.junit.rules.RunRules.evaluate(RunRules.java:20)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
	at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
	at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:220)
	at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:53)

@uomik I'm sending a PR to your branch to fix the error

Same for the tests using JDBC authentication, but probably is just a derby issue

Please rebase over master and try the latest commits on https://github.com/franz1981/activemq-artemis/tree/2.13.0-jdbc-ds
Seems that I cannot send a PR to your branch

@uomik any news on the changes I've proposed on https://github.com/apache/activemq-artemis/pull/3204#issuecomment-690766208?

@uomik any news on the changes I've proposed on #3204 (comment)?

Sorry. I'm burden under work currently. Had a quick look on changes (that seem to ok and be on point) and did the rebase, but was little confused about the outcome (I'm no means a git expert), and have had absolutely no time to dig into it. The unit tests did go through though.

@uomik I will try to send a PR so you can accept/merge it and push force the new version, do you need me to help more?

@uomik
That's the PR: https://github.com/uomik/activemq-artemis/pull/1

@uomik Just a note: I see that you have modified both deps and features hence the commons-dbcp2 artifact is not deployed with the broker libs: this is done on purpose? How you do in production, if you're using this?

@uomik Just a note: I see that you have modified both deps and features hence the commons-dbcp2 artifact is not deployed with the broker libs: this is done on purpose? How you do in production, if you're using this?

This was not intended, if this is the case it's definitely a mistake, or something I have overlooked.
We are not yet on production with this feature. In test environment we patch the official Artemis release with modified jars and add commons-dbcp2, commons-logging and commons-pool2 jars to lib (along with jdbc driver). This is done in CI/CD pipeline. We chose this approach simply because it was easier in our environment when developing this datasource feature and is in no means the way we would like to do things in production.

thanks @uomik

In test environment we patch the official Artemis release with modified jars and add commons-dbcp2, commons-logging and commons-pool2 jars to lib (along with jdbc driver)

Probably is a better way to handle this for users too: forcing a specific data source isn't good although we assume dbcp2 to be used (looking at the unwrapping logic for PosgresSQL) or whatever pooled datasource.
Users with existing JDBC connection configuration need to change their config (and libs) if they want "decent" performance

I've managed to run some tests with MySql and found something odd: if you add this configuration to broker.xml:
	<ha-policy>
	    <shared-store>
	        <master/>
	    </shared-store>
	</ha-policy>

And stop the database, the broker will stop after:
2020-09-15 19:59:05,080 WARN  [org.apache.activemq.artemis.core.server] AMQ222010: Critical IO Error, shutting down the server. file=NULL, message=Critical error while on live renew: java.lang.IllegalStateException: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

The last packet successfully received from the server was 2 milliseconds ago. The last packet sent successfully to the server was 2 milliseconds ago.
        at org.apache.activemq.artemis.core.server.impl.jdbc.JdbcLeaseLock.renew(JdbcLeaseLock.java:169) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.ActiveMQScheduledLeaseLock.run(ActiveMQScheduledLeaseLock.java:91) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.ActiveMQScheduledComponent$2.run(ActiveMQScheduledComponent.java:306) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:65) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [rt.jar:1.8.0_265]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [rt.jar:1.8.0_265]
        at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
Caused by: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

I suppose that the data source pool need to be configured somehow or the lease lock renew will make it stop.
That's the expected behaviour?

I suppose that the data source pool need to be configured somehow or the lease lock renew will make it stop.
That's the expected behaviour?

The drawback with shared store, being database or something else, is that it essentially becomes a single point of failure for the whole cluster. If we lose the database, we lose the ability to sync data between master and backup, the ability to ensure data integrity and broker high availability. In this case, on my opinion, the only thing we can do is to shut down the broker node as precautionary measure. This is the way it was before I fiddled with anything, and I saw no reasons to change it.
The way you can mitigate this single point of failure is to have multiple master-backup pairs distributed accross multiple databases (servers). Or build some redundancy in the infrastrusture (clustering the database etc.).

@uomik

The drawback with shared store, being database or something else, is that it essentially becomes a single point of failure for the whole cluster. If we lose the database, we lose the ability to sync data between master and backup, the ability to ensure data integrity and broker high availability. In this case, on my opinion, the only thing we can do is to shut down the broker node as precautionary measure. This is the way it was before I fiddled with anything, and I saw no reasons to change it.

Agree, but consider the simple case of a database upgrade ( ie a database restart): a shared store implies a live and backup connected to it; the expectation during a database upgrade would be that the live will go down (that's what is happening now) while the slave should keep trying to became live (ie while now it just die).

@franz1981

Agree, but consider the simple case of a database upgrade ( ie a database restart): a shared store implies a live and backup connected to it; the expectation during a database upgrade would be that the live will go down (that's what is happening now) while the slave should keep trying to became live (ie while now it just die).
Probably the backup behaviour of shared store ha should be different. It seems a separate problem to me then this PR, just thinking loud.

My time to completely agree :) I thought you were just referring to the behaviour of the master. Backup should definitely behave differently on these occasions.

I've found another issue with shared store HA on live stop:
2020-09-16 09:51:36,116 WARN  [org.apache.activemq.artemis.jdbc.store.drivers.JDBCConnectionProvider] Unable to set a network timeout on the JDBC connection: java.util.concurrent.RejectedExecutionException: Task org.apache.activemq.artemis.utils.actors.ProcessorBase$$Lambda$61/1932332324@40491594 rejected from org.apache.activemq.artemis.utils.ActiveMQThreadPoolExecutor@6cfdff08[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 92]
        at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2063) [rt.jar:1.8.0_265]
        at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:830) [rt.jar:1.8.0_265]
        at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1379) [rt.jar:1.8.0_265]
        at org.apache.activemq.artemis.utils.actors.ProcessorBase.onAddedTaskIfNotRunning(ProcessorBase.java:186) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.utils.actors.ProcessorBase.task(ProcessorBase.java:174) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.utils.actors.OrderedExecutor.execute(OrderedExecutor.java:54) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at com.mysql.cj.jdbc.ConnectionImpl.setNetworkTimeout(ConnectionImpl.java:2488) [mysql-connector-java-8.0.21.jar:8.0.21]
        at org.apache.commons.dbcp2.Jdbc41Bridge.setNetworkTimeout(Jdbc41Bridge.java:386) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.DelegatingConnection.setNetworkTimeout(DelegatingConnection.java:985) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.Jdbc41Bridge.setNetworkTimeout(Jdbc41Bridge.java:386) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.DelegatingConnection.setNetworkTimeout(DelegatingConnection.java:985) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.activemq.artemis.jdbc.store.drivers.JDBCConnectionProvider.getConnection(JDBCConnectionProvider.java:62) [artemis-jdbc-store-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.JdbcLeaseLock.release(JdbcLeaseLock.java:267) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.JdbcNodeManager.pauseLiveServer(JdbcNodeManager.java:413) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.SharedStoreLiveActivation.close(SharedStoreLiveActivation.java:161) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.stop(ActiveMQServerImpl.java:1247) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.stop(ActiveMQServerImpl.java:1033) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.stop(ActiveMQServerImpl.java:876) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.integration.FileBroker.stop(FileBroker.java:98) [artemis-cli-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.cli.commands.Run.stop(Run.java:166) [artemis-cli-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.cli.commands.Run$2.run(Run.java:157) [artemis-cli-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]

activation.close(failoverOnServerShutdown, restarting); on server stop is causing JdbcLeaseLock.release to set a network timeout on the JDBC connection while using an already closed executor (previously on stop).
Need to check how to fix this

activation.close(failoverOnServerShutdown, restarting); on server stop is causing JdbcLeaseLock.release to set a network timeout on the JDBC connection while using an already closed executor (previously on stop).
Need to check how to fix this

I've come across this as well. After investigating I came to conclusion that this might be an issue with MySQL or Connector/J. But have not yet had a proper look into this, so might be something else.

Nope it seems related to how we configure the network connection timeout (still need to understand if it makes sense...).
I see a similar problem on backup side while live is restarting, see:
2020-09-16 15:07:09,990 INFO  [org.apache.activemq.artemis.core.server] AMQ221008: live server wants to restart, restarting server in backup
2020-09-16 15:07:10,181 INFO  [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.14.0-SNAPSHOT [b25dd37c-f77c-11ea-9566-1aabf22f14df] stopped, uptime 1 minute
2020-09-16 15:07:10,183 WARN  [org.apache.activemq.artemis.jdbc.store.drivers.JDBCConnectionProvider] Unable to set a network timeout on the JDBC connection: java.util.concurrent.RejectedExecutionException: Task org.apache.activemq.artemis.utils.actors.ProcessorBase$$Lambda$61/1394940518@15f4294c rejected from org.apache.activemq.artemis.utils.ActiveMQThreadPoolExecutor@69d38d0a[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 265]
        at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2063) [rt.jar:1.8.0_265]
        at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:830) [rt.jar:1.8.0_265]
        at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1379) [rt.jar:1.8.0_265]
        at org.apache.activemq.artemis.utils.actors.ProcessorBase.onAddedTaskIfNotRunning(ProcessorBase.java:186) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.utils.actors.ProcessorBase.task(ProcessorBase.java:174) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.utils.actors.OrderedExecutor.execute(OrderedExecutor.java:54) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at com.mysql.cj.jdbc.ConnectionImpl.setNetworkTimeout(ConnectionImpl.java:2488) [mysql-connector-java-8.0.21.jar:8.0.21]
        at org.apache.commons.dbcp2.Jdbc41Bridge.setNetworkTimeout(Jdbc41Bridge.java:386) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.DelegatingConnection.setNetworkTimeout(DelegatingConnection.java:985) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.Jdbc41Bridge.setNetworkTimeout(Jdbc41Bridge.java:386) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.DelegatingConnection.setNetworkTimeout(DelegatingConnection.java:985) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.activemq.artemis.jdbc.store.drivers.JDBCConnectionProvider.getConnection(JDBCConnectionProvider.java:62) [artemis-jdbc-store-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.jdbc.store.drivers.AbstractJDBCDriver.createTableIfNotExists(AbstractJDBCDriver.java:90) [artemis-jdbc-store-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.jdbc.store.drivers.AbstractJDBCDriver.createTable(AbstractJDBCDriver.java:63) [artemis-jdbc-store-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.JdbcSharedStateManager.createSchema(JdbcSharedStateManager.java:68) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.jdbc.store.drivers.AbstractJDBCDriver.start(AbstractJDBCDriver.java:50) [artemis-jdbc-store-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.JdbcSharedStateManager.usingConnectionProvider(JdbcSharedStateManager.java:58) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.JdbcNodeManager.lambda$usingConnectionProvider$0(JdbcNodeManager.java:91) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.JdbcNodeManager.start(JdbcNodeManager.java:162) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.SharedStoreBackupActivation$FailbackChecker$1.run(SharedStoreBackupActivation.java:217) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_265]

2020-09-16 15:07:10,191 WARN  [org.apache.activemq.artemis.jdbc.store.drivers.JDBCConnectionProvider] Unable to set a network timeout on the JDBC connection: java.util.concurrent.RejectedExecutionException: Task org.apache.activemq.artemis.utils.actors.ProcessorBase$$Lambda$61/1394940518@15f4294c rejected from org.apache.activemq.artemis.utils.ActiveMQThreadPoolExecutor@69d38d0a[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 265]
        at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2063) [rt.jar:1.8.0_265]
        at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:830) [rt.jar:1.8.0_265]
        at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1379) [rt.jar:1.8.0_265]
        at org.apache.activemq.artemis.utils.actors.ProcessorBase.onAddedTaskIfNotRunning(ProcessorBase.java:186) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.utils.actors.ProcessorBase.task(ProcessorBase.java:174) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.utils.actors.OrderedExecutor.execute(OrderedExecutor.java:54) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at com.mysql.cj.jdbc.ConnectionImpl.setNetworkTimeout(ConnectionImpl.java:2488) [mysql-connector-java-8.0.21.jar:8.0.21]
        at org.apache.commons.dbcp2.Jdbc41Bridge.setNetworkTimeout(Jdbc41Bridge.java:386) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.DelegatingConnection.setNetworkTimeout(DelegatingConnection.java:985) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.Jdbc41Bridge.setNetworkTimeout(Jdbc41Bridge.java:386) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.DelegatingConnection.setNetworkTimeout(DelegatingConnection.java:985) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.activemq.artemis.jdbc.store.drivers.JDBCConnectionProvider.getConnection(JDBCConnectionProvider.java:62) [artemis-jdbc-store-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.JdbcSharedStateManager.setup(JdbcSharedStateManager.java:193) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.JdbcNodeManager.start(JdbcNodeManager.java:164) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.SharedStoreBackupActivation$FailbackChecker$1.run(SharedStoreBackupActivation.java:217) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_265]

2020-09-16 15:07:10,195 WARN  [org.apache.activemq.artemis.jdbc.store.drivers.JDBCConnectionProvider] Unable to set a network timeout on the JDBC connection: java.util.concurrent.RejectedExecutionException: Task org.apache.activemq.artemis.utils.actors.ProcessorBase$$Lambda$61/1394940518@15f4294c rejected from org.apache.activemq.artemis.utils.ActiveMQThreadPoolExecutor@69d38d0a[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 265]
        at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2063) [rt.jar:1.8.0_265]
        at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:830) [rt.jar:1.8.0_265]
        at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1379) [rt.jar:1.8.0_265]
        at org.apache.activemq.artemis.utils.actors.ProcessorBase.onAddedTaskIfNotRunning(ProcessorBase.java:186) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.utils.actors.ProcessorBase.task(ProcessorBase.java:174) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.utils.actors.OrderedExecutor.execute(OrderedExecutor.java:54) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at com.mysql.cj.jdbc.ConnectionImpl.setNetworkTimeout(ConnectionImpl.java:2488) [mysql-connector-java-8.0.21.jar:8.0.21]
        at org.apache.commons.dbcp2.Jdbc41Bridge.setNetworkTimeout(Jdbc41Bridge.java:386) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.DelegatingConnection.setNetworkTimeout(DelegatingConnection.java:985) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.Jdbc41Bridge.setNetworkTimeout(Jdbc41Bridge.java:386) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.DelegatingConnection.setNetworkTimeout(DelegatingConnection.java:985) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.activemq.artemis.jdbc.store.drivers.JDBCConnectionProvider.getConnection(JDBCConnectionProvider.java:62) [artemis-jdbc-store-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.JdbcSharedStateManager.readState(JdbcSharedStateManager.java:285) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.JdbcNodeManager.readSharedState(JdbcNodeManager.java:477) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.JdbcNodeManager.awaitLiveStatus(JdbcNodeManager.java:451) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.SharedStoreBackupActivation$FailbackChecker$1.run(SharedStoreBackupActivation.java:219) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_265]

2020-09-16 15:07:12,198 WARN  [org.apache.activemq.artemis.jdbc.store.drivers.JDBCConnectionProvider] Unable to set a network timeout on the JDBC connection: java.util.concurrent.RejectedExecutionException: Task org.apache.activemq.artemis.utils.actors.ProcessorBase$$Lambda$61/1394940518@15f4294c rejected from org.apache.activemq.artemis.utils.ActiveMQThreadPoolExecutor@69d38d0a[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 265]
        at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2063) [rt.jar:1.8.0_265]
        at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:830) [rt.jar:1.8.0_265]
        at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1379) [rt.jar:1.8.0_265]
        at org.apache.activemq.artemis.utils.actors.ProcessorBase.onAddedTaskIfNotRunning(ProcessorBase.java:186) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.utils.actors.ProcessorBase.task(ProcessorBase.java:174) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.utils.actors.OrderedExecutor.execute(OrderedExecutor.java:54) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at com.mysql.cj.jdbc.ConnectionImpl.setNetworkTimeout(ConnectionImpl.java:2488) [mysql-connector-java-8.0.21.jar:8.0.21]
        at org.apache.commons.dbcp2.Jdbc41Bridge.setNetworkTimeout(Jdbc41Bridge.java:386) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.DelegatingConnection.setNetworkTimeout(DelegatingConnection.java:985) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.Jdbc41Bridge.setNetworkTimeout(Jdbc41Bridge.java:386) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.DelegatingConnection.setNetworkTimeout(DelegatingConnection.java:985) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.activemq.artemis.jdbc.store.drivers.JDBCConnectionProvider.getConnection(JDBCConnectionProvider.java:62) [artemis-jdbc-store-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.JdbcSharedStateManager.readState(JdbcSharedStateManager.java:285) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.JdbcNodeManager.readSharedState(JdbcNodeManager.java:477) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.JdbcNodeManager.awaitLiveStatus(JdbcNodeManager.java:451) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.SharedStoreBackupActivation$FailbackChecker$1.run(SharedStoreBackupActivation.java:219) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_265]

2020-09-16 15:07:12,201 WARN  [org.apache.activemq.artemis.jdbc.store.drivers.JDBCConnectionProvider] Unable to set a network timeout on the JDBC connection: java.util.concurrent.RejectedExecutionException: Task org.apache.activemq.artemis.utils.actors.ProcessorBase$$Lambda$61/1394940518@15f4294c rejected from org.apache.activemq.artemis.utils.ActiveMQThreadPoolExecutor@69d38d0a[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 265]
        at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2063) [rt.jar:1.8.0_265]
        at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:830) [rt.jar:1.8.0_265]
        at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1379) [rt.jar:1.8.0_265]
        at org.apache.activemq.artemis.utils.actors.ProcessorBase.onAddedTaskIfNotRunning(ProcessorBase.java:186) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.utils.actors.ProcessorBase.task(ProcessorBase.java:174) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.utils.actors.OrderedExecutor.execute(OrderedExecutor.java:54) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at com.mysql.cj.jdbc.ConnectionImpl.setNetworkTimeout(ConnectionImpl.java:2488) [mysql-connector-java-8.0.21.jar:8.0.21]
        at org.apache.commons.dbcp2.Jdbc41Bridge.setNetworkTimeout(Jdbc41Bridge.java:386) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.DelegatingConnection.setNetworkTimeout(DelegatingConnection.java:985) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.Jdbc41Bridge.setNetworkTimeout(Jdbc41Bridge.java:386) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.DelegatingConnection.setNetworkTimeout(DelegatingConnection.java:985) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.activemq.artemis.jdbc.store.drivers.JDBCConnectionProvider.getConnection(JDBCConnectionProvider.java:62) [artemis-jdbc-store-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.jdbc.store.sql.PropertySQLProvider$Factory.investigateDialect(PropertySQLProvider.java:405) [artemis-jdbc-store-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.jdbc.store.sql.PropertySQLProvider$Factory.<init>(PropertySQLProvider.java:366) [artemis-jdbc-store-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.JdbcNodeManager.with(JdbcNodeManager.java:67) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.createNodeManager(ActiveMQServerImpl.java:501) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.internalStart(ActiveMQServerImpl.java:578) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.start(ActiveMQServerImpl.java:526) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.SharedStoreBackupActivation$FailbackChecker$1.run(SharedStoreBackupActivation.java:230) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_265]

2020-09-16 15:07:12,202 WARN  [org.apache.activemq.artemis.jdbc.store.drivers.JDBCConnectionProvider] Unable to set a network timeout on the JDBC connection: java.util.concurrent.RejectedExecutionException: Task org.apache.activemq.artemis.utils.actors.ProcessorBase$$Lambda$61/1394940518@15f4294c rejected from org.apache.activemq.artemis.utils.ActiveMQThreadPoolExecutor@69d38d0a[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 265]
        at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2063) [rt.jar:1.8.0_265]
        at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:830) [rt.jar:1.8.0_265]
        at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1379) [rt.jar:1.8.0_265]
        at org.apache.activemq.artemis.utils.actors.ProcessorBase.onAddedTaskIfNotRunning(ProcessorBase.java:186) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.utils.actors.ProcessorBase.task(ProcessorBase.java:174) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.utils.actors.OrderedExecutor.execute(OrderedExecutor.java:54) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at com.mysql.cj.jdbc.ConnectionImpl.setNetworkTimeout(ConnectionImpl.java:2488) [mysql-connector-java-8.0.21.jar:8.0.21]
        at org.apache.commons.dbcp2.Jdbc41Bridge.setNetworkTimeout(Jdbc41Bridge.java:386) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.DelegatingConnection.setNetworkTimeout(DelegatingConnection.java:985) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.Jdbc41Bridge.setNetworkTimeout(Jdbc41Bridge.java:386) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.DelegatingConnection.setNetworkTimeout(DelegatingConnection.java:985) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.activemq.artemis.jdbc.store.drivers.JDBCConnectionProvider.getConnection(JDBCConnectionProvider.java:62) [artemis-jdbc-store-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.jdbc.store.drivers.AbstractJDBCDriver.createTableIfNotExists(AbstractJDBCDriver.java:90) [artemis-jdbc-store-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.jdbc.store.drivers.AbstractJDBCDriver.createTable(AbstractJDBCDriver.java:63) [artemis-jdbc-store-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.JdbcSharedStateManager.createSchema(JdbcSharedStateManager.java:68) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.jdbc.store.drivers.AbstractJDBCDriver.start(AbstractJDBCDriver.java:50) [artemis-jdbc-store-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.JdbcSharedStateManager.usingConnectionProvider(JdbcSharedStateManager.java:58) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.JdbcNodeManager.lambda$usingConnectionProvider$0(JdbcNodeManager.java:91) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.JdbcNodeManager.start(JdbcNodeManager.java:162) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.internalStart(ActiveMQServerImpl.java:580) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.start(ActiveMQServerImpl.java:526) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.SharedStoreBackupActivation$FailbackChecker$1.run(SharedStoreBackupActivation.java:230) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_265]

2020-09-16 15:07:12,205 WARN  [org.apache.activemq.artemis.jdbc.store.drivers.JDBCConnectionProvider] Unable to set a network timeout on the JDBC connection: java.util.concurrent.RejectedExecutionException: Task org.apache.activemq.artemis.utils.actors.ProcessorBase$$Lambda$61/1394940518@15f4294c rejected from org.apache.activemq.artemis.utils.ActiveMQThreadPoolExecutor@69d38d0a[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 265]
        at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2063) [rt.jar:1.8.0_265]
        at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:830) [rt.jar:1.8.0_265]
        at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1379) [rt.jar:1.8.0_265]
        at org.apache.activemq.artemis.utils.actors.ProcessorBase.onAddedTaskIfNotRunning(ProcessorBase.java:186) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.utils.actors.ProcessorBase.task(ProcessorBase.java:174) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.utils.actors.OrderedExecutor.execute(OrderedExecutor.java:54) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at com.mysql.cj.jdbc.ConnectionImpl.setNetworkTimeout(ConnectionImpl.java:2488) [mysql-connector-java-8.0.21.jar:8.0.21]
        at org.apache.commons.dbcp2.Jdbc41Bridge.setNetworkTimeout(Jdbc41Bridge.java:386) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.DelegatingConnection.setNetworkTimeout(DelegatingConnection.java:985) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.Jdbc41Bridge.setNetworkTimeout(Jdbc41Bridge.java:386) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.DelegatingConnection.setNetworkTimeout(DelegatingConnection.java:985) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.activemq.artemis.jdbc.store.drivers.JDBCConnectionProvider.getConnection(JDBCConnectionProvider.java:62) [artemis-jdbc-store-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.JdbcSharedStateManager.setup(JdbcSharedStateManager.java:193) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.JdbcNodeManager.start(JdbcNodeManager.java:164) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.internalStart(ActiveMQServerImpl.java:580) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.start(ActiveMQServerImpl.java:526) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.SharedStoreBackupActivation$FailbackChecker$1.run(SharedStoreBackupActivation.java:230) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_265]

2020-09-16 15:07:12,207 INFO  [org.apache.activemq.artemis.core.server] AMQ221000: backup Message Broker is starting with configuration Broker Configuration (clustered=true,jdbcDriverClassName=com.mysql.cj.jdbc.Driver,jdbcConnectionUrl=jdbc:mysql://localhost:3306/mysql,messageTableName=MESSAGE_TABLE,bindingsTableName=BINDINGS_TABLE,largeMessageTableName=LARGE_MESSAGES_TABLE,pageStoreTableName=PAGE_TABLE,)
2020-09-16 15:07:14,586 INFO  [org.apache.activemq.artemis.core.server] AMQ221032: Waiting to become backup node
2020-09-16 15:07:14,587 WARN  [org.apache.activemq.artemis.jdbc.store.drivers.JDBCConnectionProvider] Unable to set a network timeout on the JDBC connection: java.util.concurrent.RejectedExecutionException: Task org.apache.activemq.artemis.utils.actors.ProcessorBase$$Lambda$61/1394940518@15f4294c rejected from org.apache.activemq.artemis.utils.ActiveMQThreadPoolExecutor@69d38d0a[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 265]
        at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2063) [rt.jar:1.8.0_265]
        at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:830) [rt.jar:1.8.0_265]
        at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1379) [rt.jar:1.8.0_265]
        at org.apache.activemq.artemis.utils.actors.ProcessorBase.onAddedTaskIfNotRunning(ProcessorBase.java:186) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.utils.actors.ProcessorBase.task(ProcessorBase.java:174) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.utils.actors.OrderedExecutor.execute(OrderedExecutor.java:54) [artemis-commons-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at com.mysql.cj.jdbc.ConnectionImpl.setNetworkTimeout(ConnectionImpl.java:2488) [mysql-connector-java-8.0.21.jar:8.0.21]
        at org.apache.commons.dbcp2.Jdbc41Bridge.setNetworkTimeout(Jdbc41Bridge.java:386) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.DelegatingConnection.setNetworkTimeout(DelegatingConnection.java:985) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.Jdbc41Bridge.setNetworkTimeout(Jdbc41Bridge.java:386) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.commons.dbcp2.DelegatingConnection.setNetworkTimeout(DelegatingConnection.java:985) [commons-dbcp2-2.7.0.jar:2.7.0]
        at org.apache.activemq.artemis.jdbc.store.drivers.JDBCConnectionProvider.getConnection(JDBCConnectionProvider.java:62) [artemis-jdbc-store-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.JdbcLeaseLock.tryAcquire(JdbcLeaseLock.java:175) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.LeaseLock.tryAcquire(LeaseLock.java:91) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.LeaseLock.tryAcquire(LeaseLock.java:109) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.JdbcNodeManager.lock(JdbcNodeManager.java:267) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.jdbc.JdbcNodeManager.startBackup(JdbcNodeManager.java:360) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.SharedStoreBackupActivation.run(SharedStoreBackupActivation.java:62) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]
        at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$ActivationThread.run(ActiveMQServerImpl.java:3981) [artemis-server-2.14.0-SNAPSHOT.jar:2.14.0-SNAPSHOT]

The problem on  seems related to: https://github.com/apache/activemq-artemis/blob/d55ec37195dff04377a43957cc0afa9d0de14b89/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/SharedStoreBackupActivation.java#L217
where the nodeManager is being used while the server (and the thread pools created on it) are stopped.

@uomik
One question: the comment here is valid?
/**
    * The DataSource to use to store Artemis data in the data store (can be {@code null} if {@code jdbcConnectionUrl} and {@code jdbcDriverClassName} are used instead).
    *
    * @return the DataSource used to store Artemis data in the JDBC data store.
    */
   private DataSource getDataSource() {
      if (dataSource == null) {
         if (dataSourceProperties.isEmpty()) {
            addDataSourceProperty("driverClassName", jdbcDriverClassName);
            addDataSourceProperty("url", jdbcConnectionUrl);
            if (jdbcUser != null) {
               addDataSourceProperty("username", jdbcUser);
            }
            if (jdbcPassword != null) {
               addDataSourceProperty("password", jdbcPassword);
            }
         }
         dataSource = JDBCDataSourceUtils.getDataSource(dataSourceClassName, dataSourceProperties);
      }
      return dataSource;
   }

With these last changes I believe it's nearly ok, I'm now working to check how it behaves with different databases.
I will further work to make this better for the shared store use case too, similarly to what we do for NFS with file shared store (maybe).
I've just one concern looking at the default pool configuration: the number of available JDBC connections in the pool and the behaviour when there are none available.
I see that paging + large messsages can use an unbounded number of connections (it really depends by the concurrent thread that perform page/large msg streaming operations), the 2 journals requires 1 connections each (binding + message journal) and the node manager requires 2 (the lease lock + the node manager shared state) connections.
That means that without paging or large messages a minimum of 2 + 2 = 4 database connections.
The problem I see is paging and large messages: if the are too many some of the other operations will hang, awaiting an available connection, that means that probably we need to add the critical analyzer there or just let users knows they can configure pool appropriately.

Please use the rebase to remove the last merge commit and try rebasing against master manually instead so the merge commit won't appear when the PR will be merged

Please use the rebase to remove the last merge commit and try rebasing against master manually instead so the merge commit won't appear when the PR will be merged

I'll try, but it will take me a while to understand how I do that.

@uomik don't worry try with
git reset --hard 76caeaccbc61f154cb9e26ed74e172534a1f4da0

@franz1981 I may have succeeded :) Hopefully I didn't mess anything up

Sorry @uomik we've had several fixes around JDBC, please try to fix the conflicts if you can so I would merge the PR: I'm still testing this with different DBMS :)

@uomik that's https://gist.github.com/franz1981/ffb4cff1c1fc025f9d0fed1aa961f116 that fixed version of the conflicted file

@franz1981

I've just one concern looking at the default pool configuration: the number of available JDBC connections in the pool and the behaviour when there are none available.
I see that paging + large messsages can use an unbounded number of connections (it really depends by the amount of concurrent threads that perform page/large msg streaming operations), the 2 journals requires 1 connections each (binding + message journal) and the node manager requires 2 (the lease lock + the node manager shared state) connections.
That means that without paging or large messages a minimum of 2 + 2 = 4 database connections.
The problem I see is paging and large messages: if the are too many some of the other operations will hang, awaiting an available connection, that means that probably we need to add the critical analyzer there or just let users knows they can configure pool appropriately.

Getting back to this. We've lately opened our test cluster for "external" clients, this has increased load and amount of transactions quite a lot. As a result we've quite frequently seen an event where master restarts due to issues with live locks. We are still using default settings for the pool and I'm suspecting that this may actually be a result of DB connection starvation. I will experiment with pool settings next week and will hopefully find something to overcome this issue.
`2020-09-25 11:53:10,958 WARN  [org.apache.activemq.artemis.core.server] AMQ222010: Critical IO Error, shutting down the server. file=NULL, message=Critical error while on live renew: java.lang.IllegalStateException: live lock can't be renewed
at org.apache.activemq.artemis.core.server.impl.jdbc.ActiveMQScheduledLeaseLock.run(ActiveMQScheduledLeaseLock.java:92) [artemis-server-2.13.0.jar:2.13.0]
at org.apache.activemq.artemis.core.server.ActiveMQScheduledComponent$2.run(ActiveMQScheduledComponent.java:306) [artemis-commons-2.13.0.jar:2.13.0]
at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42) [artemis-commons-2.13.0.jar:2.13.0]
at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31) [artemis-commons-2.13.0.jar:2.13.0]
at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:65) [artemis-commons-2.13.0.jar:2.13.0]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [rt.jar:1.8.0_221]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [rt.jar:1.8.0_221]
at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) [artemis-commons-2.13.0.jar:2.13.0]
2020-09-25 11:53:10,981 ERROR [org.apache.activemq.artemis.core.server.impl.jdbc.ActiveMQScheduledLeaseLock] live lock renew tooks 39255 ms, while is supposed to take <4000 ms`

@uomik
Yep, that was expected, sadly: I see 2 possible solutions to this.

set the max number of connections of the pool to be infinite (and document it)
use different data sources (and pools): one for the parts of the broker that requires a well defined amount (ie journals, node manager & lease locks), while another one for paging/large messages (both use sequential file factory IIRC), documenting the requirements for both

One thing thats a little strange is that the pool had only three active db connections at the time the error occurred (DBCP2 default max is 8, that should be enough in most cases).
This may actually be the same issue we've had with other applications with this particular database server: the server randomly closes some of the connections after one hour, being active or not. Based on earlier tests I suspected that JDBC4 driver with isValid checks would be enough to cope with this. I will first check whether the same pool configuration we use elsewhere resolves the issue. If the problem persists will experiment with the other options

Based on earlier tests I suspected that JDBC4 driver with isValid checks would be enough to cope with this

And it is, the point is that only lease lock and node manager are alive with an idle broker ie 2 connections
I don't know what can be the third one...

I don't know what can be the third one...

This might be that invalid connection. At least this happened with the other application I once fought with this db server (gradually filling the pool with invalid connections). That was using jdbc3 driver, though.

And that makes sense indeed, it won't get changed unless none will request a new one...I know dbcp can do it on a separate thread too that save latency outliers on start up but I prefer this default behaviour.
I am more concern about the starvation of lease lock connection due to others; I am sure this need some attention before merging this pr...

@uomik any news on this?
We can just set an unbounded number of connections on the pool to begin with in order to proceed on this :+1:

@franz1981
Getting back to the comment https://github.com/apache/activemq-artemis/pull/3204#issuecomment-698902202
I've now run our Artemis cluster with updated datasource / connection pool configuration (forced idle connection eviction after 30 minutes) for a couple of days. The random reboots have disappeared, so I'm concluding this really was an issue where our database server is dropping connections. The same fix (eviction runs) has been in use with other applications using the same database with similar results, so I'm quite confident with my conclusion.
Additionally did a commit for fixing the datasource pool size as unbounded as default.

@uomik happy to hear it!
I'll run this again on our CI as well and I would move to the next task based on this: https://issues.apache.org/jira/browse/ARTEMIS-2918
I'll call you out to test it if you like, because the scenario is a bit tricky, but I think it could help many users :)
BTW, great contribution, many thanks!

Please @uomik try to squash all the commits into one if possible and I'm going to merge it :+1:

Please @uomik try to squash all the commits into one if possible and I'm going to merge it 👍

Done.
This is great! Thank you @franz1981, @ehsavoie, @sebthom and @gtully for you invaluable input, help and effort with this one 👍

@uomik Just merged it, but...argh I see something strange...
I cannot see some of the changes I was expecting to see...Asre you sure you have squashed (using fixup) the commits or just deleted them?

@uomik Just merged it, but...argh I see something strange...
I cannot see some of the changes I was expecting to see...Are you sure you have squashed (using fixup) the commits or just deleted them?

Thats strange. I used squash instead of fixup (and altered the commit message a bit). And did a diff with remote before pushing just to be sure. It did show no difference in code after the squash other than one extra commit from the upstream/master.

@uomik I can give you an example: https://github.com/uomik/activemq-artemis/pull/1/commits/8e2c7bab20b78556677275cb398542956df89cdb

@uomik I can give you an example: uomik@8e2c7ba
This change seems disappeared from the commits of this PR

Yes, I can verify that this was already missing before I squashed. All the latest changes for Postgre large message handling are included, so it seems that some commits from the middle have disappeared. Seems I messed things up at some point,  already before the squash

@uomik I believe that both the 2 PRs I've sent you on your repo are missing: some of them are key to make both test and this PR to work so I'm going to send a follow-up PR that add the missing bits :+1:


Question: Would it make sense to decouple layouts from themes?

Is your feature request related to a problem? Please describe.
Currently, themes include layouts.
That leads to a certain degree of 'theme-lock-in' because themeB might not support the same layouts as themeA.
Also: When you look at many of the custom layouts that community themes have created they are basically rehashes of already existing layouts - just named differently. So image-left layout becomes presenter layout but structurally it's pretty much the same.
Describe the solution you'd like
I see two possible solutions for this:

Decouple layouts entirely from themes. So basically layouts are defined by slidev and themes should only be concerned about their implementation.

--> Pretty strict solution that could also limit creativity in the community

Define a set of 'default layouts' and ask community themes to at least implement those - plus any additional ones they want to implement

You could then group community themes into two categories:
A: Implements all default layouts
B: Does not implement all default layouts
That would give me the security as a user that as long as I stick to themes from group A I can switch between them effortlessly because they all implement the same set of 'default layouts'.

I think this is totally up to how theme authors want to implement. Indeed they can provide layout-less theme as they want. The layout resolution is local > theme > default which means theme can partially overrides default layouts while keep the others as-is. If you want layouts to be interchangeable across themes, use the ones available in the default layouts would always get you resolved.
That said, I would still recommend to have local layouts, or even eject the theme if you want to have the full controls over things.

Define a set of 'default layouts'

We already do.

Ask community themes

We could have a note in the guide, but I don't think it's make sense to make it "required". As they could contribute to the global styles to change how the layout looks like but leave the implementation to the default ones.


Display production variables values on nhost dashboard console

This is more a feature request than a bug: make production variables values visible in dashboard console.
This will greatly improve debugging: I often need to check which value has been assigned, whether it is correct.
See this discord discussion:
https://discord.com/channels/552499021260914688/929545312593383495/929678596631568414

It's now possible to see the system environment variables in the Nhost dashboard:


Move code from archived sdk-dotnet repo

This is a copy of the code in
github.com/hyperledger-archives/sawtooth-sdk-dotnet
at commit
fa44caa20b1551b528850b43225c122ef6012e4c

From a process perspective, we want to keep the entire history. Something like a) create branch from previous repo; b) purge anything that won't be copied over; c) move everything to a subdirectory;d) merge that into sawtooth-contrib and create PR

Sure. I see the marketplace code has been in a pending PR since 08 JAN 2020.

Sure. I see the marketplace code has been in a pending PR since 08 JAN 2020.

Yeah, Richard was working on this in the background before he got busy. Just lost track of it. Probably just needs review.

@vaporos it's been quite a while - chance to clean this up?


Source maps to the Scala library are broken

I know why this is. When I consolidated the sourceMapSettings into the scalaJSSettings the Scala library got them as well. There used probably an overriding / priority issue there.


Question about ligand transport distance

Hi,
Thank you for a very useful tool,
I want to know for a secreted ligand, how is the distance it can travel calculated? Or is the transport distance for each secreted ligand specified?
Looking forward to your reply.

Thank you for your usage. The ligand transport distance can be calculated by 'hn.tl.default_w_visium' and plotted by 'hn.pl.select_w'. The detailed calculation method is described in the 'Edge weighting strategy' section of our manuscript on Biorxiv.


How to deregister service

I need to deregister all services when I stop registrator ,or there has any way to clear all my machine's services

Not registrator specific, but you can put the node's agent into maintenance mode (https://www.consul.io/docs/commands/maint.html) which marks all the services on the node as unhealthy.


Fix issue with the order of where values are taken from

Fixes https://github.com/fastlane/fastlane/issues/10640
Documented here https://docs.fastlane.tools/advanced/#priorities-of-parameters-and-options
This PR doesn't change or add any tests yet
First, I want to have a discussion, as this change probably causes side effects for some setups: It seems like we haven't changed the behavior since many months (or years?), so I'd assume some setups already make "use" of that behavior.
Assuming that's true, and we haven't changed anything in that code for the last year, I'd propose to change the documentation, instead of applying this PR, as both solutions are fine, as long as we're consistent and have the proper documentation for it.

          1 Error

:no_entry_sign:
Tests have failed, see below for more information.

Tests:

Name
File

FastlaneCore FastlaneCore::ConfigurationFile Properly loads and handles various configuration files fills in the values from a valid config file
configuration_file_spec.rb

FastlaneCore FastlaneCore::ConfigurationFile Properly loads and handles various configuration files properly raises an exception if verify block doesn't match
configuration_file_spec.rb

FastlaneCore FastlaneCore::ConfigurationFile Properly loads and handles various configuration files prints a warning if no value is provided
configuration_file_spec.rb

FastlaneCore FastlaneCore::ConfigurationFile Properly loads and handles various configuration files supports modifying of frozen strings too
configuration_file_spec.rb

FastlaneCore FastlaneCore::ConfigurationFile Properly loads and handles various configuration files supports modifying of frozen strings that are returned via blocks too
configuration_file_spec.rb

FastlaneCore FastlaneCore::ConfigurationFile Properly loads and handles various configuration files properly loads boolean values
configuration_file_spec.rb

FastlaneCore FastlaneCore::ConfigurationFile Properly loads and handles various configuration files ignores the same item being set after the first time
configuration_file_spec.rb

FastlaneCore FastlaneCore::ConfigurationFile Properly loads and handles various configuration files Handling invalid broken configuration files automatically corrects invalid quotations
configuration_file_spec.rb

FastlaneCore FastlaneCore::ConfigurationFile Properly loads and handles various configuration files Prints out a table of summary prints out a table of all the set values
configuration_file_spec.rb

FastlaneCore FastlaneCore::ConfigurationFile Properly loads and handles various configuration files for_lane and for_platform support reads global keys when not specifying lane or platform
configuration_file_spec.rb

FastlaneCore FastlaneCore::ConfigurationFile Properly loads and handles various configuration files for_lane and for_platform support reads global keys when platform and lane dont match
configuration_file_spec.rb

FastlaneCore FastlaneCore::ConfigurationFile Properly loads and handles various configuration files for_lane and for_platform support reads lane setting when platform doesn't match or no for_platform
configuration_file_spec.rb

FastlaneCore FastlaneCore::ConfigurationFile Properly loads and handles various configuration files for_lane and for_platform support reads platform setting when lane doesn't match or no for_lane
configuration_file_spec.rb

FastlaneCore FastlaneCore::ConfigurationFile Properly loads and handles various configuration files for_lane and for_platform support reads platform and lane setting
configuration_file_spec.rb

FastlaneCore FastlaneCore::ConfigurationFile Properly loads and handles various configuration files for_lane and for_platform support allows exceptions in blocks to escape but the configuration is still intact
configuration_file_spec.rb

  Generated by :no_entry_sign: Danger

Closed in favour of #10650


Added Docs for installing d3 v5. Better docs for importing other JS Libraries.

This is the full solution for installing d3 version 5 as well as including types.
See related issue and answer
Additional edits:

Changed this links to be more descriptive to improve accessibility
Corrected Types link (broken before)
Changed @types.md to match the information on this page
Fixed the externalJS path, and upgraded it to v5 path

Related Issues: #142 #98 #217

Here is instruction how to migrate visual code to d3 v5:

the link is broken


torq.sh stop updated to use $(( )) instead of bc

No change to previous PR for altering the ./torq.sh stop function - only difference is that bc is not implemented, as servers are not guaranteed to have it installed - now using $(( )) to evaluate the {baseport}+offset instead
Note* expr could be used, but would require spaces to work and so would mean adding more logic to insert spaces

Hi all,
Going to merge this - unless anyone has any issues?


Ivy: compilation fails

Hi,
just tried to switch my project to use Ivy and got an error

Compiling @ctrl/ngx-codemirror : es2015 as esm2015
ERROR in No suitable injection token for parameter '_differs' of class 'CodemirrorComponent'.
no type or decorator

If I just copy the component locally, it works just fine. So, something should be adapted in the build process I guess

should be working w/ latest version and 9

Yes it does. Thanks


Change active tab to have full outline for high contrast

This fixes:

When navigating using arrow keys, there isn't a second border around the tab.
Full outline for active tabs (picture looks better when you click on it):

@alanrenmsft yes, same as before - no outline for light and dark themes.


setTargetAtTime inaccurate calculations on subsequent checks

When calculating an exponential approach (setTargetAtTime), on subsequent calculations, we lose the curve. Possibly an issue with the Firefox tools' implementation, but suspect it's here.

Confirmed, issue with this library due to _lastComputedValue


UI: Remove 'Instagram' Icon From Landing Page Footer

Category

[ ] Documentation
[ ] Resource Addition
[ ] Codebase
[x] User Interface
[ ] Feature Request

Description

We need to remove the 'Instagram' icon from the footer section of the landing page:

For Assignee:

Ensure that you submit a PR for this issue within 1 day. Otherwise, you will be unassigned from this issue and it will be passed on to the next contributor who asked to be assigned to it.

Note: This issue is for JWoC 2024 participants. If you are not participating in this event, please refrain from asking to get assigned to this issue.

@Sriparno08 please assign this issue to me under JWOC'24

@Sriparno08 Assign me to this issue under JWOC

@Vinaysohaliya You're assigned.

@Sriparno08 Assign me to this issue under JWOC

Hey @surendar-05, another mentee @Vinaysohaliya is already assigned to this issue.

Hey @Sriparno08 , can you assign me this issue under JWOC.

@Sriparno08 I like to work on that issue under JWOC

Hey @Vinaysohaliya, please submit a PR for this issue as soon as possible. If not, you will be unassigned from this issue.

hey @Sriparno08 , i would like to work on this issue under JWOC.

hello @Sriparno08 , i would love to work on this under JWOC

@surendar-05 You're assigned.
To Others:
The mentee who is assigned to this issue is chosen because he/she was the first one to ask for assignment with the 'JWOC' keyword in his/her comment.

@Sriparno08 Assign me to this issue under JWOC

I am ready with my pr under Jwoc


Using PyTorch models for training and hyperparameter tuning with Dask

I was speaking with a group today who is using Dask for I/O and preprocessing of a larger-than-memory dataset and then wants to train a single pytorch model on that large dataset. My initial thought was to look at using Dask-ML's Incremental meta-estimator, however after reading the docs more closely I realized that Incremental only supports models with a partial_fit method.
I'm wondering what are some best practices for training a pytorch model (or running a hyperparameter optimization) on a large Dask collection today? Should users use skorch to wrap their pytorch models for a scikit-learn compatible API? Is there some other approach users should take?
cc'ing @stsievert as you may have thoughts on this topic

I just ran across https://ml.dask.org/pytorch which makes me think today the best practice is to use skorch to integrate pytorch models with Incremental and HyperbandSearchCV. Though I'm still curious to hear there are other thoughts on this topic or if there's an appetite for more first-class pytorch support

Wrapping PyTorch models with Skorch has been my first instinct in a couple projects. Generally, this works well. However, Skorch can have some performance overheads as mentioned on their "Performance" doc page: https://skorch.readthedocs.io/en/stable/user/performance.html
I'd recommend following that page; it's decent, and mentions a couple of use cases that burned me. Without mitigation, Skorch has poor performance in these cases:

When either small data or small models are used. Converting datasets beforehand reduces the overhead (which is significant with small data/models). If the time spent in PyTorch code is small, this overhead is significant. In Dask parlance, this happens with small chunks.
When their callbacks are enabled (the default). They can be disabled by setting callbacks="disable" in the most recent version.

For my use case, I eventually wound up only using Skorch for initialization (at _embed.py#L88-L101) inside a hand crafted Scikit-learn compatible estimator (e.g, I manually call skorch_nn.module_.forward inside my partial_fit function).


Crash when removing channels in AE2

I changed the config in AE2 to not include channels, and i got this crash from RemoteIO:

AppliedEnergistics/Applied-Energistics-2#2032


fix args parse error of video test

in src/option.py line 151, it's:
args.data_test = args.data_test.split('+')

so this line should be
if args.data_test == ['video']:

Thank you very much for fixing the outdated code! I appreciate your help.


Refactor load_data for consistent sheet handling and cleaner code

This PR addresses an issue in the load_data function when reading a specific sheet from an Excel file and performs code simplification.
Issues Addressed:

Previously, reading a single sheet resulted in inconsistent behavior where the returned Document object contained a text char-by-char with \n between each.
Redundant parentheses were found around self._row_joiner.

Changes Made:

Modified how sheet_name is processed always to treat it as a list, ensuring consistent behavior across single or multiple sheet name inputs.
Removed the unnecessary parentheses from self._row_joiner for cleaner code.
Renamed the variable keys to sheet_names for better clarity.
Updated the function's docstring to be more descriptive and accurate.

By implementing these changes, the function is now more robust and can handle different input scenarios effectively. Additionally, the code has been streamlined for better readability.

Hi @jerryjliu,
Is there anything missing for you to review the PR?
Let me know if anything should be done.
Thanks!

@guyy1232 sorry for the delay! reviewing now

nice one


Migrate to boto3 for retrieving S3 objects for esx_service

There is inconsistent behavior with boto when downloading objects
from S3 where the bucket name contains dots:
https://github.com/boto/boto/issues/2836
To address this issue, VMware operations for fetching images from S3
are now using boto3. In addition to the new dependency on boto3, the
following issues have been addressed.

The hidden --bucket-name argument now supports s3 buckets with dots
in the name

The --metavisor-ovf-image argument can return the latest
metavisor image with exact or partial matches (e.g. 0-0-964 or
metavisor-0-0-964-g0cf0e0e62.ovf)

If the --metavisor-ovf-image argument is not provided, we
default to retrieving the latest modified image with a latest or
release- prefix

I tempered my eagerness to migrate everything to boto3. According to AWS docs we boto and boto3 can lively safely side by side. Hence, immediate fixes with boto3 first...

LGTM


Autofix EM101, EM102, EM103 if possible

Summary
Generate an autofix for EM101, EM102, EM103 if possible. This will avoid the autofix if the msg variable is bound in the current scope or the parent scope. Otherwise, it'll produce 2 edits for the fix:

Insert the exception argument into a variable assignment before the raise statement. The variable name is msg.
Replace the exception argument with the variable name.

Indentation is taken care using the helper function ruff_python_ast::whitespace::indentation
Newline is taken from checker.stylist.line_ending
fixes: #4103

Ecosystem checks can be found here: https://github.com/charliermarsh/ruff/actions/runs/4820598417/attempts/1#summary-13071431799

As a stretch, it would be nice to parenthesize expressions in cases like this (imagine the expression is actually multi-line):
+            msg = "Some very long message"
             raise Exception(
-                "Some very long "
-                "message"
+                msg
             )

As a stretch, it would be nice to parenthesize expressions in cases like this (imagine the expression is actually multi-line):

Do you mean to autofix it like so?
+msg = (
+    "This is an example exception. "
+    "This message is very long "
+    "and spans multiple lines."
+)
 raise Exception(
-    "This is an example exception. "
-    "This message is very long "
-    "and spans multiple lines."
+    msg
 )

It could be not but not with the help of AST. I think slicing the source code would work with msg = {content} as the replacement string.


Updates to OLS Demo app to work with Router v 2.1

In particular, support for routing configuration options

?Wow, you're fast.

From: Dave Kelsey<EMAIL_ADDRESS>Sent: Friday, March 20, 2020 5:54 PM
To: bcgov/ols-devkit
Cc: Ross, Michael RA CITZ:EX; Review requested
Subject: Re: [bcgov/ols-devkit] Updates to OLS Demo app to work with Router v 2.1 (#153)
Merged #153https://github.com/bcgov/ols-devkit/pull/153 into gh-pages.

You are receiving this because your review was requested.
Reply to this email directly, view it on GitHubhttps://github.com/bcgov/ols-devkit/pull/153#event-3151298082, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACWLKLTDE2TAZ6MKY6G5UYTRIQF5PANCNFSM4LQXJ5MA.

Boom!  :)


Replace 3D/4D geometry vectors with XMMT Library

Match up API and see if there's a way to swap out and use the __AVX2__ implementation.

This is no longer supported on M3 Mac, which I use to develop so I'm dropping this. I still have the library, but won't be using it for now.


Can it be imported with requirejs, and whether it complies with the AMD specification

Can it be imported with requirejs, and whether it complies with the AMD specification
my use php+requirejs+ flowbite.js ?
After importing fjs with requirejs, it doesn't work

Hello @liseipi,
Currently, we have support for CJS, EMS, and UMD: https://www.npmjs.com/package/flowbite?activeTab=explore (you can explore the distribution files here).
I'll check this out but I'm currently focused on some other issues, but if you open a PR I'll be more than happy to consider adding that to a new version!
Cheers,
Zoltan

Hello @liseipi,
Currently, we have support for CJS, EMS, and UMD: https://www.npmjs.com/package/flowbite?activeTab=explore (you can explore the distribution files here).
I'll check this out but I'm currently focused on some other issues, but if you open a PR I'll be more than happy to consider adding that to a new version!
Cheers, Zoltan

@zoltanszogyenyi  How to achieve