question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Whole method is rollbacked for specific assignment

See original GitHub issue

Describe the bug Since the introduction of the block mutator it’s clear rollbacking assignment errors isn’t correct.

        public void SomeLinq()
        {
            var list = new List<List<double>>();
            var something = 1 + 3;
            int[] listProjected = list.Select(l => l.Count()).ToArray();
        }

In the above method all mutations are rollbacked. The linq select mutation (Count to Sum) changes the return value from double to int. So the assignment will fail.

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:22 (22 by maintainers)

github_iconTop GitHub Comments

1reaction
richardwerkmancommented, Dec 10, 2021

@dupdob sounds like a great idea! We could roll back block mutation first. Then statement mutations and if those didn’t help fall back to safe mode. I like this better than just turning off block mutations as a whole

1reaction
dupdobcommented, Nov 6, 2021

update: the work to do appears harder by the day. I think the two most complicated things are:

  1. restoring rolledback mutations
  2. tracking errors across mutant versions But, I just found out yesterday that my initial problem (excessive number of compile error) was due to the block mutator and not to the mutation identification strategy (upward vs downward). Initial count was close to 500. Integrating V 1.0.1 reduced it in half. So I still have 200 compile error due to block mutator.

I will look into to, but I am afraid I start to think that block mutation is not a good fit in its current form

Read more comments on GitHub >

github_iconTop Results From Across the Web

Unable To Perform Retry For Transfer To GL Through ...
The rollback or mark for retry of an individual assignment action for ... Either rollback/mark for retry the entire payroll action or do...
Read more >
Introducing channel assignment history and rollback for ...
Channel rollback builds on the availability of channel assignment history and aims to provide quicker remediation of released artifacts. Users ...
Read more >
Rolling back transactions via the ROLLBACK SQL query
The rollback SQL statement is used to manually rollback transactions in MS SQL Server.
Read more >
Rollback one specific migration in Laravel
This process allows you to make specific changes to migrations without having to do a full refresh and seed each time. Personally I...
Read more >
Asynchronous processing of cascading transactions
For Assign, the operation always works in overwrite mode, changing the current value to the new value based on the parent-child relationship.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found