Until today, budget season has been a high point of Portland Mayor Ted Wheeler's year.

After public grumbles and stumbles last fall, he seemed poised to win the support of the majority of his colleagues for his third budget without major changes. (A vote is expected Thursday.)

But in a hearing today he sniped at colleagues with personal attacks in a discussion of whether to defund the Gun Violence Reduction Team, as City Commissioner Jo Ann Hardesty has repeatedly proposed.

Hardesty has argued that, despite a name change from the Gang Enforcement Team, the team is still marred by a record of disproportionately impacting communities of color. The officers in that team, she's proposed, should be moved over to street patrols.

Eudaly said she's interested in analyzing the program but doesn't necessarily plan to support the Hardesty change as part of the budget, and in her remarks she stumbled on the name of the group.

The fact that Eudaly has projected her support for the mayor's budget made it all the more surprising when Wheeler went after her error.

"I find it hard to understand how my colleagues could understand the substance of a program when they don't even know the name of the program," he said.

"Oh, wow," Eudaly could be heard saying.

Wheeler went on to defend the substance of the policies at the Portland Police Bureau, but then Hardesty got a chance to speak, and the dialogue is worth reading for what counts in City Hall as public drama.

"I want to sanction you for being disrespectful to Commissioner Eudaly and myself," said Hardesty. (Wheeler last month had scolded Hardesty for the tone with which she questioned an expert witness before council.)

"I'm disappointed that you would take the opportunity to take a pot shot," added Hardesty.

Wheeler: "I want to keep this to the budget discussion, but Commissioner Eudaly, I do apologize, I do apologize."

Hardesty: "You apologize to her but not to me."

Wheeler: "If you'd stop interrupting me, commissioner, I could get to it. I apologize to you too. But here's the deal: I have listened while we cast aspersions on the employees of this city and not give them an opportunity to defend themselves. Let's hear them out."

Eudaly: "I'm sorry. Once again, questioning staffing levels, allocation of resources, policies and procedures of the police bureau is not disparaging individual officers. I've stated time and time again, I respect the hard work of many of our officers, I recognize the work is stressful, the work is dangerous, and I just refuse to allow this a narrative to continue from the police union, the bureau or the mayor that I can't have differing opinions without dismissing and disparaging the entire bureau. That's not what this is about. It's about the smart allocation of our limited resources."

At the end of the discussion, Wheeler apologized further to both Hardesty and Eudaly.

"I'm not proud of my behavior earlier, Commissioner Eudaly or Commissioner Hardesty," he said. "I don't even recognize myself sometimes. This is a very emotional issue. It's an important issue. At the end of the day, it's a budget conversation. And I let my emotion on this issue get the better of me.

"You deserve better," he said while looking at Hardesty, before turning to Eudaly. "Commissioner Eudaly, you deserve better than this, and I apologize. … I'm disappointed and I'm embarrassed."

It's not clear what impact his comments will have on the budget vote scheduled for Thursday. But the mayor's strident defense of police, after he ran three years ago for office on a platform of reforming the Police Bureau, continues to create conflict in City Hall.