Commit Graph

24 Commits

Author SHA1 Message Date
Valouleloup
afbb8bec18 Fix lock strategy tests 2018-02-04 11:01:34 +01:00
Gabriel Caruso
566bb57428
Fix typo 2018-02-01 03:46:23 -02:00
Nicolas Grekas
878b08cd46 [Lock][Process][FrameworkBundle] fix tests 2017-11-22 13:18:49 +01:00
Fabien Potencier
af384aeee0 feature #22132 [Lock] Automaticaly release lock when user forget it (jderusse)
This PR was squashed before being merged into the 3.4 branch (closes #22132).

Discussion
----------

[Lock] Automaticaly release lock when user forget it

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

The objective of this PR is to automatically release the Lock when the user forget to call the `release` method (like the `fclose` function does in, php core).
The implementation is comparable to #22115 but the purpose is not the same.

I create a new PR to not mix things.

Commits
-------

2eedc1fd37 [Lock] Automaticaly release lock when user forget it
2017-10-01 11:03:21 -07:00
Jérémy Derussé
2eedc1fd37 [Lock] Automaticaly release lock when user forget it 2017-10-01 11:03:19 -07:00
Jérémy Derussé
95358ac98f
Share connection factories between cache and lock 2017-09-28 19:35:07 +02:00
Jérémy Derussé
b4b00c9c6f [Lock] Include lock component in framework bundle 2017-09-27 08:10:55 -07:00
Jérémy Derussé
f74ef35778 [Lock] Check TTL expiration in lock acquisition 2017-09-03 07:31:45 -07:00
Fabien Potencier
dda57e6e21 feature #22543 [Lock] Expose an expiringDate and isExpired method in Lock (jderusse)
This PR was squashed before being merged into the 3.4 branch (closes #22543).

Discussion
----------

[Lock] Expose an expiringDate and isExpired method in Lock

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #22452
| License       | MIT
| Doc PR        | NA

This PR store the expiration date of the lock in the key and exposes public method to let the user know the state of the Lock expiration.

Commits
-------

279430800e [Lock] Expose an expiringDate and isExpired method in Lock
2017-08-29 13:57:32 -07:00
Jérémy Derussé
279430800e [Lock] Expose an expiringDate and isExpired method in Lock 2017-08-29 13:57:28 -07:00
Javier Eguiluz
a8d72e260f [Lock] Fix some tests that require pcntl_sigwaitinfo() function 2017-08-29 16:00:07 +02:00
Jérémy Derussé
ff951697b6
Fix lock failling test 2017-08-10 07:46:51 +02:00
Nicolas Grekas
bc22cdd034 Consistently use 7 chars of sha256 for hash-based id generation 2017-08-03 13:27:37 +02:00
Jérémy Derussé
67ecc71364
Deprecate Filesystem/LockHandler 2017-07-31 11:53:49 +02:00
Nicolas Grekas
068f8d1341 Merge branch '3.3' into 3.4
* 3.3:
  Fix optional cache warmers are always instantiated whereas they should be lazy-loaded
  add some \ on PHP_VERSION_ID for 2.8
  [Di] Remove closure-proxy arguments
  [PropertyInfo][DoctrineBridge] The bigint Doctrine's type must be converted to string
2017-06-02 11:54:06 +02:00
Jérémy Derussé
3b6c495c89 [Lock] Re-add the Lock component in 3.4 2017-05-24 08:31:08 +02:00
Fabien Potencier
37ec869511 [Lock] remove the component from 3.3 2017-04-30 08:55:30 -07:00
Jérémy Derussé
7130dd8296
Simplify BlockingTest 2017-04-01 22:15:43 +02:00
Fabien Potencier
b59660c23d minor #22119 [Lock] Adjust lock delay to avoid false error tests (jderusse)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Lock] Adjust lock delay to avoid false error tests

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

Adjust the clockDelay to fix tests
This test is here to:

T0.
* Fork A, B, C

T1.
* A acquire Lock then start sleeping for 3*clockDelay
* B start sleeping for 1*clockDelay
* C start sleeping for 1*clockDelay

T2
* B wakeup AND try to acquire lock in wait mode
* C wakeup AND try to acquire lock in non wait mode (lock should be till acquired by A)

T4
* A release Lock
* B acquire lock and release it

At the end, this tests assert than:
* A acquire and delete the lock
* B acquire and delete the lock
* C failed to acquire the lock

The point is, this test is time sensitive, and if the fork is too slow, A, B and C are not synchronized and C is able to acquire Lock.

This PR adjuste clock delay to reduce false failures

Commits
-------

33f2a9a6f7 Adjust lock delay to avoid false error tests
2017-03-22 16:13:19 -07:00
Jérémy Derussé
33f2a9a6f7
Adjust lock delay to avoid false error tests 2017-03-22 23:42:28 +01:00
Fabien Potencier
b2d5ba7db7 feature #22114 [lock] Rename Quorum into Strategy (jderusse)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[lock] Rename Quorum into Strategy

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes (not consistent naming)
| New feature?  | no
| BC breaks?    | yes (but version 3.4 not yet released)
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | none
| License       | MIT
| Doc PR        |

The term `Quorum` in Interface is confusing an not consistent with the Symfony project.
This PR switch to naming `Strategy\StrategyInterface` (like in adapter i `Cache` and `Ldap` component)

Commits
-------

1e9671b993 Rename Quorum into Strategy
2017-03-22 15:21:53 -07:00
Jérémy Derussé
1e9671b993
Rename Quorum into Strategy 2017-03-22 23:05:31 +01:00
Nicolas Grekas
4927993835 Merge branch '3.2'
* 3.2:
  Fixed pathinfo calculation for requests starting with a question mark.
  [HttpFoundation] Fix missing handling of for/host/proto info from "Forwarded" header
  [Validator] Add object handling of invalid constraints in Composite
  [WebProfilerBundle] Remove uneeded directive in the form collector styles
  removed usage of $that
  HttpCache: New test for revalidating responses with an expired TTL
  [Serializer] [XML] Ignore Process Instruction
  [Security] simplify the SwitchUserListenerTest
  Revert "bug #21841 [Console] Do not squash input changes made from console.command event (chalasr)"
  [HttpFoundation] Fix Request::getHost() when having several hosts in X_FORWARDED_HOST
2017-03-22 22:42:42 +01:00
Jérémy Derussé
018e0fc330 [Lock] Create a lock component 2017-03-22 11:45:19 -07:00